HTML内表示文字の取得方法?(IWebBrowser2Ptr)

[戻る]
正月ダディ 2007/12/28(金) 15:49:39
    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;            
        }
    }
    どうか、ご教授の程、宜しくお願い致します。

正月ダディ 2007/12/28(金) 17:25:21
body->innerTextを取得したところ、
ある程度の内容は取得出来ました。

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

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

宜しくお願い致します。

RAPT [HomePage] 2007/12/29(土) 00:37:00
フレームだったらフレームごとにドキュメントを取得する必要があるし、
ドメインの異なるサブフレームは別の方法が必要だし、といくつかコツがあります。

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

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

正月ダディ 2008/01/08(火) 11:20:19
[[解決]]
おっしゃる通り正しく取得出来ていました。
デバッグコードでの文字数オーバーでした。

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

古いスレッドには追加発言できません。