1)テキストボックスにキーワードを入力
2)「検索」ボタンを押すとGoogleなどの検索エンジンにキーワードを引き渡す
3)Googleなどの検索エンジンから返却されたHTMLソースを獲得する
4)獲得したHTMLソースから検索結果であるURLを抜き出す
というようなものをVB6で作りたいと考えています。
私は4)の部分で戸惑っています。IE.documentを使用してソースからURLを抜き出すことは可能なのでしょうか?
私と同じものを作ろうとしている方が結構おられるようなので、過去ログなどで調べて私なりに組み立てたプログラムを載せておきます。
Option Explicit
Dim IE As Object
Private Sub Command1_Click()
'IE.Visible = True
SyncNavigate "http://www.google.ne.jp"
IE.document.All.Item("q").Value = Text1.Text
Call IE.document.Forms.Item(0).submit
Call LoopWhileBusy
Call test
End Sub
Private Sub Form_Load()
Set IE = CreateObject("InternetExplorer.Application")
Text1.Text = ""
End Sub
Sub SyncNavigate(ByVal URL As String)
IE.Navigate URL
Call LoopWhileBusy
End Sub
Sub LoopWhileBusy()
Do
DoEvents
Loop While IE.Busy
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
IE.Quit
End
End Sub
Private Sub test()
Debug.Print IE.document.getElementsByTagName("HTML").Item(0).outerHTML
End Sub
詳しくは見ていませんが
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdnfp2k2/htm/odc_accessingie.asp
や
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbafpd11/html/fdobjFPHTMLDocument.asp
で解決できないでしょうか。
こんな感じかな。
Private Sub test()
Dim p As Object
Dim child As Object
For Each p In IE.Document.getElementsByTagName("p")
If p.className = "g" Then
For Each child In p.children
If child.tagName = "A" Then
Debug.Print child.innerText & "(" & child.href & ")"
End If
Next child
End If
Next p
End Sub
ありがとうございます、なんとか解決することができました。
NAさん、LESIAさん、どうもありがとうございました。
Hi :)
How would be this 2 troublesome forms to achieve the submit happening?
If I try the
WebBrowser1.Document.frames ("jatek ).Document.Forms ("specTevUrlap ).submit
mode, that server kicking. :)
The another forms but
WebBrowser1.Document.frames ("jatek ).Document.Forms ("urlap ).submit
but causes bug
Object doesn't support this property or method (Error 438)
The form I would like that if ("spectevurlap )-on finding
<INPUT onclick="if ( (document.specTevUrlap.tevFajta.value == 'ongyilok') && !confirm ('Honestly suicidal do you want to be?!?!')) return wall neither document.urlap.par1.value=document.specTevUrlap.tevFajta.value; document.urlap.Submit.value='svSpecTev'; document.urlap.submit ); return wall neither"type=image src= "/icon/reason.gif ">
reason I would like to simulate.gif button clicking
The full code:
<FORM name=specTevUrlap>
<DIV align=center><SELECT name=tevFajta> <OPTION value=as selected>疽ol</OPTION><OPTION value=felejt>elfelejted kit ヘdロt駘</OPTION><OPTION value=homeport>elmondasz egy hホportot</OPTION><OPTION value=terkep>megn騷ed a t駻k駱et</OPTION><OPTION value=leghajokibe>L馮hajnbsp;helyzetjelz駸</OPTION><OPTION value=ongyilok>マgyilkos leszel</OPTION></SELECT> <INPUT onclick="if ( (document.specTevUrlap.tevFajta.value == 'ongyilok') && !confirm('T駭yleg マgyilkos akarsz lenni?!?!') ) return false; document.urlap.par1.value=document.specTevUrlap.tevFajta.value; document.urlap.Submit.value='svSpecTev'; document.urlap.submit(); return false;" type=image src="/ikon/ok.gif"> </DIV></FORM></DIV>
<FORM name=urlap action=../cgi-bin/jatek.pl method=post><INPUT type=hidden value=otVilag name=oldalTipus><INPUT type=hidden value="it ta" name=loginname><INPUT type=hidden value=gfacEOT1mPNGw name=kulcs><INPUT type=hidden value=2789 name=idopont><INPUT type=hidden value=semmi name=Submit><INPUT type=hidden name=par1><INPUT type=hidden name=par2><INPUT type=hidden name=par3></FORM>
ツイート | ![]() |