我正在编写一个程序,该程序可以获取包含视频的网页的源代码。然后,它使用正则表达式来隔离该视频的下载链接。然后它使用httpwebrequest
和httpwebresponse
下载视频。我的问题出现在某些网站有一个页面,您必须单击继续才能进入视频页面。
例如,在http://nextgenvidz.com/view/s995xvc9e2fv上播放了一个名为“ The.Matrix.Reloaded.2003.mp4 ”的视频,因此我告诉我的程序获取该网址的源代码“ http://nextgenvidz.com/view/s995xvc9e2fv“但它无法找到视频的下载链接,因为它正在”继续“页面的源代码中搜索该文件。如果您访问上面的网站并查看来源,您将看不到该链接。然后,单击“继续”并在视频出现时执行相同操作,您将注意到该文件仅存在于第二个文件中。
如何获取正在播放视频的页面的源代码,而不是我必须单击的页面?
我正在尝试使用此代码:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Loading As String = "Loading..."
TextBox1.Text = Loading
Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(TextBox2.Text)
Dim response As System.Net.HttpWebResponse = request.GetResponse()
Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream())
Dim sourcecode As String = sr.ReadToEnd()
TextBox1.Text = sourcecode
End Sub
也许有办法以编程方式自动选择“继续”按钮?
答案 0 :(得分:19)
这家伙回答得非常好。
How can I get HTML page source for websites in VB.NET?
这是他的代码:
Dim sourceString As String = New System.Net.WebClient().DownloadString("SomeWebPage")
答案 1 :(得分:0)
我过去曾尝试过这样的写法,并发现存在一系列限制(通过浏览器或协议本身)以防止自动化。创建通用网站解析器是不可能的。您必须根据隐藏内容的方式为各个站点编写解析例程。首先必须确定每个站点如何向用户隐藏内容的模式,然后为每个模式实现实际解析(模式可以是带有视频目的地的模式,也可以是弹出带有内容视频的另一个窗口的按钮,或者一个执行javascript的按钮,可以将视频动态加载到当前窗口中)
答案 2 :(得分:0)
Dim PictureURL As String = "http://www.bing.com" + New System.Net.WebClient().DownloadString("http://www.bing.com/HPImageArchive.aspx?format=rss&idx=0&n=1&mkt=de-DE").Replace("<link>", "|").Replace("</link>", "|").Split("|")(3)