0

vb6でyoutubeapiを検索する必要があります。ネット上で見つけることができるのは、他の一般的な言語のライブラリだけです。

現在、次のURLを使用して検索しています

URL = "http://www.youtube.com/results?search_query=" & TextBox1.Text &
"&suggested_categories=2%2C23%2C25&page=" & pagenum

正規表現を使用してページを解析する必要があります。検索ページで何かが変更された場合、正規表現が失敗する可能性があります。

しかし、私はapiでそれを行うことができれば、誰かがリソースや解決策を提案できますか?

4

1 に答える 1

1

Internet Explorerに付属のMSHTMLを使用してWebページを解析してみませんか?「MicrosoftHTMLObjectLibrary」への参照を追加する必要があります。奇妙なことに、空のHTMLDocumentオブジェクトをインスタンス化してから、最初のオブジェクトのメソッドを呼び出して、URLに基​​づいて新しいHTMLDocumentオブジェクトを作成する必要があります。ただし、元のオブジェクトを保持する必要があります。そうしないと、「PermissionDenied」エラーメッセージが表示され続けます。私はまだ両方をUDTに入れて、それらが互いに同じスコープに保たれるようにします。

Option Explicit

Private Type HtmlDoc
    Parent          As MSHTML.HTMLDocument
    Main            As MSHTML.HTMLDocument
End Type

Private Sub Command1_Click()

    Dim URL
    Dim uHTMLDoc As HtmlDoc

    URL = "http://www.youtube.com/results?search_query=" & TextBox1.Text &  "&suggested_categories=2%2C23%2C25&page=" & pagenum 

    ' Source Code
    GetHTMLDocumentFromURL URL, uHTMLDoc
    Debug.Print uHTMLDoc.Main.documentElement.outerHTML

End Sub

Private Sub GetHTMLDocumentFromURL(ByRef the_sURL As String, ByRef the_uHTMLDoc As HtmlDoc)

    With the_uHTMLDoc

        Set .Parent = New MSHTML.HTMLDocument

        Set .Main = .Parent.createDocumentFromUrl(the_sURL, vbNullString)

        ' Wait for the document to load completely.
        ' This is because the transfer is asynchronous.
        ' It is possible that this string might be different if you have another
        ' language than English for Internet Explorer on the
        ' machine where the code is executed.

        Do While .Main.readyState <> "complete"
            DoEvents
        Loop

    End With

End Sub

どのタイプの解析を実行するかはわかりませんが、GetElementById()、GetElementsByName()、GetElementsByTagName()などのHTMLDocumentクラスのさまざまなメソッドを確認してください。タイプライブラリをよく見て、少し実験してコツをつかんでください。

于 2012-08-30T14:11:32.860 に答える