PROGRAMMING PR

【VBA】検索結果をテキスト形式で出力する

記事内に商品プロモーションを含む場合があります
検索クエリ~テキスト形式で取得をVBAでやってみました。

【XMLHTTP60】の【responseText】プロパティを使う

以下のコードで、クエリ結果を文字列として取得することができる

Dim objXml As XMLHTTP60
Dim url As String

Set objXml = New XMLHTTP60
url = "https://hogefuga"

objXml.Open "GET", url, False
objXml.Send

Do While objXml.readyState < 4
    DoEvents
Loop

Debug.Print objXml.responseText

 

↓関数化するともう少し便利↓

function GetHtmlCode(url As String) As string
    Dim objXml As XMLHTTP60
    Dim result As String

    Set objXml = New XMLHTTP60

    objXml.Open "GET", url, False
    objXml.Send

    Do While objXml.readyState < 4
        DoEvents
    Loop

    result = objXml.responseText

    Set objXml = Nothing

    GetHtmlCode = result 
End Function

エラーハンドリングは一切していませんが、URLをこの関数に渡すことで、HTMLコードを取得することができます。データ収集には便利ですね。

検索クエリは連打してはダメ

試しに、複数回Google検索を実行させてみたところ、見事に弾かれました。
20回くらいで取得不能となり、数時間くらい放置しないと再実行できなくなります。

検索クエリを投げる時は、30秒に1回程度のインターバル時間を入れた方が良いです。