用vb6进行youtube api搜索

用vb6进行youtube api搜索,vb6,youtube-api,Vb6,Youtube Api,我需要用vb6搜索youtube api,我在网上只能找到其他流行语言的库 目前,我正在使用以下url进行搜索 URL = "http://www.youtube.com/results?search_query=" & TextBox1.Text & "&suggested_categories=2%2C23%2C25&page=" & pagenum 我必须使用正则表达式解析页面,如果搜索页面中发生某些更改,则正则表达式可能会失败 但我更希望如果我能

我需要用vb6搜索youtube api,我在网上只能找到其他流行语言的库

目前,我正在使用以下url进行搜索

URL = "http://www.youtube.com/results?search_query=" & TextBox1.Text &
"&suggested_categories=2%2C23%2C25&page=" & pagenum
我必须使用正则表达式解析页面,如果搜索页面中发生某些更改,则正则表达式可能会失败


但我更希望如果我能用api实现,有人能推荐一个资源或解决方案吗

为什么不使用Internet Explorer附带的MSHTML解析网页?您需要添加对“Microsoft HTML对象库”的引用。奇怪的是,您必须实例化一个空的HTMLDocument对象,然后通过调用第一个对象上的方法基于URL创建一个新的HTMLDocument对象。但是您必须保留原始对象,否则会不断收到“权限被拒绝”错误消息。我仍然将它们都放入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
选项显式
私有类型HtmlDoc
父级为MSHTML.HTMLDocument
Main作为MSHTML.HTMLDocument
端型
专用子命令1_Click()
暗URL
作为HtmlDoc的Dim uHTMLDoc
URL=”http://www.youtube.com/results?search_query=“&TextBox1.Text&”&suggered_categories=2%2C23%2C25&page=“&pagenum”
'源代码
GetHTMLDocumentFromURL URL,uHTMLDoc
调试.打印uHTMLDoc.Main.documentElement.outerHTML
端接头
私有子GetHTMLDocumentFromURL(ByRef作为字符串,ByRef作为HtmlDoc作为字符串)
与_uHTMLDoc
Set.Parent=New MSHTML.HTMLDocument
Set.Main=.Parent.createDocumentFromUrl(the_-sURL,vbNullString)
'等待文档完全加载。
'这是因为传输是异步的。
'如果您有另一个字符串,则此字符串可能不同
“Internet Explorer上使用的语言比英语多”
'执行代码的计算机。
Do While.Main.readyState“完成”
多芬特
环
以
端接头

我不知道您想要执行哪种类型的解析,但请查看HTMLDocument类上的各种方法,例如GetElementById()、GetElementsByName()和GetElementsByTagName()。请仔细查看类型库,并尝试一些实验来掌握它的窍门。

请原谅,但您到底想做什么?您有没有想过使用而不是解析HTML?@Mattdona使用v2 api搜索youtubevb6@Deanna我想到了,但我不知道how@Smith:与请求HTML的方式相同,但使用更简单的解析。关于在VB6中进行HTTP请求,还有很多其他问题。我需要提取每个搜索结果的url及其当前对应的thumnail图像。我还可以使用GetHTMLDocumentFromURLWell检查代码中的webbrowser之类的进度。您需要找到所有搜索结果的封闭元素,遍历它们,然后找到URL的A元素和缩略图的IMG元素。手表窗口将是你的朋友。至于进步——这取决于你所说的“进步”。document对象的readyState属性可以有四个值:“uninitialized”、“loading”、“interactive”和“complete”。我指的是currentprogress和maxprogress,就像webbrowser控件一样。不幸的是,我不认为您无法访问从这些接口加载的HTML文档的进度。