こんにちは。
ぜひ皆さまのお知恵をおかしください。
◆やりたいこと
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で
判定を試みたのですが、訪れる前のリンクの色も、訪れた後のリンクの色も変わらず、
どう判定したらいいのか悩んでいます。
他にプロパティを見ましたが、よく分からず。。断念してしまいました。
皆さんにご意見をお聞きしたく、よろしくお願いします