在下面的网页上,我想在我的listbox1中获得youtube视频的所有标题
Dim webRequest As WebRequest = webRequest.Create("https://www.youtube.com/results?q=test")
Dim webresponse As WebResponse = webRequest.GetResponse()
Dim sr As System.IO.StreamReader = New System.IO.StreamReader(webresponse.GetResponseStream())
Dim youtube As String = sr.ReadToEnd
Dim r As New System.Text.RegularExpressions.Regex("title="".*""")
Dim matches As MatchCollection = r.Matches(youtube)
For Each itemcode As Match In matches
ListBox1.Items.Add(itemcode.Value.Split("""").GetValue(1))不过,有了这段代码,我得到了标题,还有其他一些东西.
发布于 2015-06-12 13:11:07
YouTube提供了一个API接口,这可能是获取这些信息的更好方法。您想要进行的特定调用记录在这里:https://developers.google.com/youtube/v3/docs/search/list。
为了使用API,您需要创建一个YouTube密钥。这可以从Google开发者控制台中完成。一旦你有了密钥,你就可以打电话到YouTube搜索视频,获取视频信息等。
使用您的代码作为基础,您可以使用以下内容:
Dim url As String = "https://www.googleapis.com/youtube/v3/search?part=snippet&q=test&maxResults=50&key={YOUR-API-KEY}"
Dim webRequest As WebRequest = webRequest.Create(url)
Dim webresponse As WebResponse = webRequest.GetResponse()
Dim sr As System.IO.StreamReader = New System.IO.StreamReader(webresponse.GetResponseStream())
Dim youtube As String = sr.ReadToEnd
Dim r As New System.Text.RegularExpressions.Regex("""title"": "".*""")
Dim matches As MatchCollection = r.Matches(youtube)
For Each itemcode As Match In matches
ListBox1.Items.Add(itemcode.Value.Split(":").GetValue(1).Trim().TrimStart("""").TrimEnd(""""))
Nextq参数指定搜索查询。这将得到你的搜索的前50匹配,并将他们放在你的下拉列表。
发布于 2015-06-12 12:42:51
如果要坚持使用正则表达式,请尝试以下操作
Dim r As New System.Text.RegularExpressions.Regex("title=""([^""]*)""")
Dim matches As MatchCollection = r.Matches(youtube)
For Each itemcode As Match In matches
ListBox1.Items.Add(itemcode.Groups(1))
Next然而,专用的API更干净。
https://stackoverflow.com/questions/30802039
复制相似问题