HTMLソースからリンク部のURLを獲得するには?

解決


未熟  2005-01-12 00:36:38  No: 87754

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


NA  2005-01-12 10:33:42  No: 87755

詳しくは見ていませんが
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
で解決できないでしょうか。


LESIA  2005-01-12 20:07:50  No: 87756

こんな感じかな。

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


未熟  2005-01-14 05:19:02  No: 87757

ありがとうございます、なんとか解決することができました。
NAさん、LESIAさん、どうもありがとうございました。


form problem  URL  2005-01-14 09:57:05  No: 87758

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') &amp;&amp; !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>


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加