質問: VBAでYahooやGoogleの検索を自動でやることはできないでしょうか? キーワードのリストが1000個ほどあり、ネットで検索して上位に出ているサイトから文章をコピペしてまとめたいのですが、すべて手作業でやると途方もない作業量になってしまいます。 なので次のような作業をVBAやプログラミングで自動でやることはできないでしょうか? エクセルなどに入力されているキーワードで検索をする。 ↓ 検索エンジンの上位100サイト程度の中からキーワードと近接する文章をコピーする。 ↓ コピーした文章をエクセルなどにまとめる。 これを全キーワードについて自動でやってくれるようなプログラミングは可能でしょうか? あるいはすでにこういったソフトがあれば有料無料問わず教えてください。 キーワードに関する情報を集めることができればいいので必ずしも情報元は検索エンジンでなくても構いません。 例えばRSSの更新情報の中からキーワードに関する文章を集めてくるようなソフトでもかまいません。 よろしくおねがいします。 ※大学の研究のために使う予定です。
回答: Web BrowserコントロールでHTMLソースを取り出してパース(解析) するよりは多少楽な方法を提案します。 (1)検索リクエストはYahooやGoogleの公開APIを使います。 -Yahooの場合 にパラメーターを付けてHTTP GETリクエストすると検索結果が XML形式で返されます。( ) -Googleの場合 にパラメーターを付けてHTTP GETリクエストすると検索結果が JSON形式で返されます。( ) (2)HTTP GET のリクエストはMSXML COMオブジェクトを使って GETできます。 Dim ObjReq As MSXML2.DOMDocument Set ObjReq = CreateObject("MSXML2.DOMDocument") とか Dim ObjReq As MSXML2.XMLHTTP Set ObjReq = CreateObject("MSXML2.XMLHTTP") でオブジェクトを作って、 ObjReq.async = True if ObjXml.Load("....") = true then .... で結果を取得する。 (3)結果のパース(解析)はXMLならMSXMLのメソッドやプロパティが そのままつかえるので多少は楽、JSON(テキストデータ)の場合 VBAでそのまま使えないので面倒だが、VBAでJSONをパースする ページを発見( ) といったプログラムを作ればよいと思う。 注意点として、結果は文字コードUTF-8で返ってくる(問題なさそう?) リクエストはURLエンコードする必要がある。YahooやGoogleのAPIを使うためのキーを事前に取得する必要がる(ローカルだと何でもOKみたい?) あんまり詳しく書けません。後はご自身で調べてみてください 面白そうなので、私も作ってみよう。