VBAでYahooやGoogleの検索を自動でやることはできないでしょうか?
キーワードのリストが1000個ほどあり、ネットで検索して上位に出ているサイトから文章をコピペしてまとめたいのですが、すべて手作業でやると途方もない作業量になってしまいます。
なので次のような作業をVBAやプログラミングで自動でやることはできないでしょうか?
エクセルなどに入力されているキーワードで検索をする。
↓
検索エンジンの上位100サイト程度の中からキーワードと近接する文章をコピーする。
↓
コピーした文章をエクセルなどにまとめる。
これを全キーワードについて自動でやってくれるようなプログラミングは可能でしょうか?
あるいはすでにこういったソフトがあれば有料無料問わず教えてください。
キーワードに関する情報を集めることができればいいので必ずしも情報元は検索エンジンでなくても構いません。
例えばRSSの更新情報の中からキーワードに関する文章を集めてくるようなソフトでもかまいません。
よろしくおねがいします。
※大学の研究のために使う予定です。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
そのようなソフトは知りませんし、ここで作り方を聞くには規模が大きすぎるので断片的に回答します。
可能か不可能か、という問いに対しては「可能」です。
検索エンジンの多くは、GETメソッドで処理されているので、検索用のURLクエリが解ればキーワード一覧を元に検索することはそれほど難しくはありません。
例えば、Googleの場合は
http://www.google.co.jp/search?hl=ja&num=100&q=[ここにキーワード]
というURLにアクセスすればキーワードで検索した結果が100件得られます。(ただし、キーワードはURLエンコードする必要があります)
ここからURLを抽出し、リンク先のページをダウンロードしてファイルとして保存。(一旦保存してから文章を探したほうが処理を細分化できます。)
とりあえずここまで出来るかやってみてください。これだけでもかなりのコード量になるはずです。
検索サイトへのアクセスは、Microsoft Web Browserコントロールでできます。
アクセスすればコントロールからHTMLソースを取り出すことが出来ます。
URLの抽出はHTMLソースから<A>タグを見つけることで出来ます。
ここまでで具体的なコーディング等が解らなければまた質問してください。
No.2
- 回答日時:
Web BrowserコントロールでHTMLソースを取り出してパース(解析)
するよりは多少楽な方法を提案します。
(1)検索リクエストはYahooやGoogleの公開APIを使います。
-Yahooの場合
http://search.yahooapis.jp/WebSearchService/V1/w …
にパラメーターを付けてHTTP GETリクエストすると検索結果が
XML形式で返されます。( http://developer.yahoo.co.jp/webapi/search/webse … )
-Googleの場合
http://ajax.googleapis.com/ajax/services/search/ …
にパラメーターを付けてHTTP GETリクエストすると検索結果が
JSON形式で返されます。( http://code.google.com/intl/ja/apis/ajaxsearch/d … )
(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("http://hoge.hoge/hoge?fuga=xxx&....") = true
then ....
で結果を取得する。
(3)結果のパース(解析)はXMLならMSXMLのメソッドやプロパティが
そのままつかえるので多少は楽、JSON(テキストデータ)の場合
VBAでそのまま使えないので面倒だが、VBAでJSONをパースする
ページを発見( http://d.hatena.ne.jp/so_blue/20090326/1238084885 )
といったプログラムを作ればよいと思う。
注意点として、結果は文字コードUTF-8で返ってくる(問題なさそう?)
リクエストはURLエンコードする必要がある。YahooやGoogleのAPIを使うためのキーを事前に取得する必要がる(ローカルだと何でもOKみたい?)
あんまり詳しく書けません。後はご自身で調べてみてください
面白そうなので、私も作ってみよう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SEO 関係ないページを検索エンジンが拾ってしまう 1 2022/05/14 11:16
- Visual Basic(VBA) WordのVBAについて 5 2023/01/11 14:38
- その他(ブログ) ブログを始めたいと思うのですが、下記のような場合のおすすめブログサービスを教えてください。 収益化な 4 2023/04/10 10:01
- Excel(エクセル) エクセルVBAについて質問です。 2 2022/12/09 17:59
- Excel(エクセル) セルの値をグーグルで検索するエクセルVBAについて! 2 2022/08/01 21:41
- その他(SNS・コミュニケーションサービス) Yahoo!とGoogle検索のしくみの違いを教えてください 2 2022/08/14 01:53
- SEO SEOの検索順位について 例えばあるキーワードで検索順位が6位だとしたら、そのキーワードに関連する良 1 2022/06/30 21:51
- オープンソース ChatGPTをスプレッドシートと連携して自動でリサーチしたいんですがうまく出来ません。。。 1 2023/05/05 15:59
- Google+ ネットで晒されてないか 3 2023/04/20 02:28
- SEO 検索候補に見られたくないキーワードがある 2 2022/09/19 17:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サーブレットコンテキストの意...
-
Objectクラスのオブジェクトを...
-
VB.NETでのnothing の意義について
-
JTableで値を右寄せ表示する方法
-
JSPでのArrayListの表示につい...
-
エクセルVBA 画像を貼り付ける...
-
[ASP.NET]DropDownListのDB連携...
-
servletからjspへオブジェクト...
-
vectorの内容をString型に変換...
-
ピクチャーボックスに点を打つ...
-
VB.netでメソッドからコントロ...
-
GridViewに行追加するには?
-
VBAでの[]
-
オブジェクトの参照渡しについて
-
getParameter()について
-
UTF-8のテキストファイルを開く...
-
String型からlong型への変換は...
-
MIME::Parserのparse_dataメソ...
-
VBA Workbooks.open
-
Excel VBA 定数にオブジェクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでの[]
-
エクセルVBA 画像を貼り付ける...
-
サーブレットコンテキストの意...
-
C#のクラスで値渡しをする
-
Vba ListViewの行挿入に関して...
-
Excel VBA 定数にオブジェクト...
-
VB.netでメソッドからコントロ...
-
servletからjspへオブジェクト...
-
javaで、、、
-
VB.NETでのnothing の意義について
-
Dispose()は、どんな時に使うの...
-
ピクチャーボックスに点を打つ...
-
VBスクリプトでテキストファイ...
-
String型からlong型への変換は...
-
JSPでのArrayListの表示につい...
-
C#で親にイベントを投げる方法
-
MessageBox.Show(Me,…の「Me」...
-
エクセルVBA/SpecialCellsで特...
-
getParameter()について
-
VBS でのソート処理Excel2003
おすすめ情報