HTML内表示文字の取得方法?(IWebBrowser2Ptr) – プログラミング – Home

HTML内表示文字の取得方法?(IWe...
 
通知
すべてクリア

[解決済] HTML内表示文字の取得方法?(IWebBrowser2Ptr)


正月ダディ
 正月ダディ
(@正月ダディ)
ゲスト
結合: 17年前
投稿: 7
Topic starter  

SHDocVw::IWebBrowser2Ptr、MSHTML::IHTMLElementPtr等を使って
URLにアクセスし、ホームページ上の内容(見た目上の文字)を
取得する事は可能でしょうか?

現在、以下のコードで<aaa>のように区切られている文字以外を
ホームページ上の内容として判断して取得しているのですが、
予想していた取得内容でありません。。。

SHDocVw::IWebBrowser2Ptr m_pBrowser;

:m_pBrowserでURLへジャンプ

CString strGetText;
MSHTML::IHTMLDocument2Ptr pHtmlDoc;
// ソースの取得
pHtmlDoc = m_pBrowser->Document;

//Bodyの取得
MSHTML::IHTMLElementPtr pHtmlBody = pHtmlDoc->body; //Bodyのオブジェクト
の取得
_bstr_t bstr_buf = pHtmlBody->outerHTML; //BodyのHTMLコードを
取得
CString strText = (LPTSTR)bstr_buf;
CString strGetText;
BOOL bGetWord = TRUE;
for( UINT i = 0 ; i < strText.GetLength() ; i++ ){
CString strChar = strText.Mid( i , 1 );
if( strChar == < ){
bGetWord = FALSE;
}
if( bGetWord ){
strGetText += strChar;
}
if( strChar == > ){
bGetWord = TRUE;
}
}
どうか、ご教授の程、宜しくお願い致します。


引用未解決
トピックタグ
正月ダディ
 正月ダディ
(@正月ダディ)
ゲスト
結合: 17年前
投稿: 7
Topic starter  

body->innerTextを取得したところ、
ある程度の内容は取得出来ました。

MSHTML::IHTMLDocument2Ptr pHtmlDoc;
pHtmlDoc = m_pBrowser->Document;
strGetText = (LPTSTR)pHtmlDoc->body->innerText;

ただ、全内容って訳ではないんです。
他に何か方法があるのでしょうか?

宜しくお願い致します。


返信引用
RAPT
 RAPT
(@RAPT)
ゲスト
結合: 22年前
投稿: 310
 

フレームだったらフレームごとにドキュメントを取得する必要があるし、
ドメインの異なるサブフレームは別の方法が必要だし、といくつかコツがあります。

> ただ、全内容って訳ではないんです。
何が取得できて、何が取得できないか、きちんと(調べて)書いてください。

単にデバッガで表示できるサイズ制限に引っ掛かっているだけということは
ありませんよね?


返信引用
正月ダディ
 正月ダディ
(@正月ダディ)
ゲスト
結合: 17年前
投稿: 7
Topic starter  

おっしゃる通り正しく取得出来ていました。
デバッグコードでの文字数オーバーでした。

ご指摘ありがとうございます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました