none
IEでWebページクローリング。一度訪れたページを回避したい RRS feed

  • 質問

  • こんにちは。

    ぜひ皆さまのお知恵をおかしください。

    ◆やりたいこと

    EXCELVBAで、以下実施しています。(クローリングにはIEオブジェクトを使用しています)

    1.シートAに入力されたキーワードをもとに、Googleで検索

    2.検索結果のリンクから、各ページへ飛んで、訪問先のページから情報収集

    (但し、以前訪れたページは回避する!)

    3.EXCELシートBへ保存

    4.1へ戻って、別キーワードで検索

    5.上記1~4を繰り返し、シートAのキーワードをすべて検索したら終了。

    ◆現在できていないところ

    1~5は概ねできていますが、

    2の部分で、以前訪れたことのあるページを回避したいのですが、

    うまく判定できずに悩んでいます。

    ◆実際のコード

    For Each link In   h.getElementsByTagName(ElementType.ELEMENT_ANCHOR)  
        ' 過去に訪れたことのある場合はスキップ
        If link.currentStyle.Color = "#1a0dab" Then   ・・・・(※うまくいかない判定)
            Set model = New ScrapingResultModel
            With model
                (省略)
            End With
            list.Add model, CStr(itemCount)
    
            itemCount = itemCount + 1
        End If
    
    Next

    IE上、一度訪れたことのあるリンクの色が変わっているため、色を利用して判断するために、

    上記ロジックの(※)印の部分は、アンカーオブジェクトのプロパティ、CurrentStyle.Colorで

    判定を試みたのですが、訪れる前のリンクの色も、訪れた後のリンクの色も変わらず、

    どう判定したらいいのか悩んでいます。

    他にプロパティを見ましたが、よく分からず。。断念してしまいました。

    皆さんにご意見をお聞きしたく、よろしくお願いします





    2016年9月17日 1:59