検索結果内容を上手く自動取得する方法があればアドバイスをお願い致します。
http://www.journey-k.com/
例えばこのページは、プルダウンが2つあり、1つは都道府県、もう1つはカテゴリーを選択
するものです。両者を選択して「検索」ボタンを押すと、結果が表示されます。
※自由記入欄は無視して下さい。
このページに限っていうと、都道府県が47で、カテゴリーが10あるので、470パターンの検索結果
があることになります。全てを取得しようとすると手動ではたいへんです。なんとか自動取得
できないでしょうか?
取得結果はhtml形式もしくはtext形式で上手く残ってくれるといいなと思っています。
1ページ1ファイルでOKです!
上手いツールがあるとか、プログラム方法(ExcelのVBAだと嬉しい)があるとか、助言を
どうぞよろしくお願い致します。
※複数のサイトで自動取得したいので、上記サイトだけしか使えないんじゃなくて、多少汎用性
があるといいです。
'ホームページの中の、
'プルダウンの読み取り
'
'マクロには、ここから必要です
'URLDownloadToFile を利用できるようにします
Private Declare Function URLDownloadToFile Lib _
"urlmon" Alias "URLDownloadToFileA" _
(ByVal pCaller As Long, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
Sub aホームページプルダウンの読み取り()
'URLDownloadToFile で「読み取りした.htm」に保存します
'ホームページfile名を準備します
homepagefilename = "http://www.journey-k.com/index.htm"
Range("A1").Value = homepagefilename
returnValue = URLDownloadToFile _
(0, homepagefilename, ThisWorkbook.Path & "\読み取りした.htm", 0, 0)
'IEを起動して、ホームページfileを表示します
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate homepagefilename
MsgBox "ホームページが表示したら、OKをクリック", , "エラー防止 待ちます"
'MsgBoxは、ホームページの裏に、隠れている時があります
'ホームページの、SELECTタグ毎にOPTIONタグを抜き出します
For Each objSELECT In objIE.Document.all.tags("SELECT")
行 = 2
列 = 列 + 2
Cells(行, 列).Value = objSELECT.Name
行 = 行 + 1
'OPTIONタグのValueとテキストを抜き出します
For Each objOPTION In objSELECT.all.tags("OPTION")
Cells(行, 列).Value = objOPTION.Value
Cells(行, 列 + 1).Value = objOPTION.innertext
行 = 行 + 1
Next objOPTION
Next objSELECT
Set objIE = Nothing
End Sub
'この後、組み合わせを行います
ありがとうございます!
素晴らしいです!
いくつか質問とか追加要望とかありますがよろしいでしょうか・・・。(ポイントははずみます!)
下のコメント欄に書きますね!