我正在尝试从网页上获取源代码。 WebBrowser控件正在向我提供我正在寻找的信息。但是,我想使用HttpWebRequest,但它给我的源代码不同于WebBrowser DocumentText。
任何人都可以告诉我如何使用HttpWebRequest获取与WebBrowser相同的源代码?
WebBrowser代码:
WebBrowser1.Navigate("http://www.networksolutions.com/whois/results.jsp?domain=" & txtUrl.Text)
textbox1.Text = WebBrowser1.DocumentText
WebBrowser结果:
HttpWebRequest代码:
Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(url)
request.KeepAlive = False
request.Timeout = 10000
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()
HttpWebRequest结果:
答案 0 :(得分:5)
某些网站会查看用户代理字符串或其他因素,并返回因此而异的内容。我已经编写了许多下载网页的项目,并且已经尝试了几次。
答案 1 :(得分:0)
这是一个古老的问题但是发生这种情况的原因是MSHTML(Windows html呈现引擎)在呈现它之前修改了传入的HTML。您可以将.NET Web浏览器的呈现模式更改为使用任何IE7,8或9渲染引擎,您将看到它们从浏览器返回的HTML中存在巨大差异 - IE9将是最相似的你看到HttpWebRequest中的内容。