如何使用VB.net获取html页面的源代码?

时间:2011-04-28 11:50:00

标签: html vb.net download

我正在编写一个程序,该程序可以获取包含视频的网页的源代码。然后,它使用正则表达式来隔离该视频的下载链接。然后它使用httpwebrequesthttpwebresponse下载视频。我的问题出现在某些网站有一个页面,您必须单击继续才能进入视频页面。

例如,在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

也许有办法以编程方式自动选择“继续”按钮?

3 个答案:

答案 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)