我正在尝试在VS2008中创建一个可执行文件,它将使用vb.NET函数将网页源代码读入字符串变量。问题是页面不是* .html而是* .aspx。
我需要一种方法来执行aspx并将显示的html变为字符串。
我想要阅读的页面是此类型的任何页面:http://www.realtor.ca/PropertyDetails.aspx?PropertyID=9620716
我已经尝试了以下代码,它适用于html页面,但是当我传入上面的aspx页面时,会为页面标题生成错误的源代码和“访问被拒绝”。
Dim myReq As WebRequest = WebRequest.Create(url)
Dim myWebResponse As WebResponse = myReq.GetResponse()
Dim dataStream As Stream = myWebResponse.GetResponseStream()
Dim reader As New StreamReader(dataStream, System.Text.Encoding.UTF8)
Dim responseFromServer As String = reader.ReadToEnd()
有任何建议或想法吗?
答案 0 :(得分:1)
从命令行运行wget时我得到同样的东西:
wget http://www.realtor.ca/PropertyDetails.aspx?PropertyID=9620716
我猜服务器依赖于在传递响应之前在浏览器中设置某些内容,例如一块饼干。您可能希望以下列方式尝试使用WebBrowser控件(您不必让它可见)(这可行):
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf DocumentCompletedHandler)
WebBrowser1.Navigate("http://www.realtor.ca/PropertyDetails.aspx?PropertyID=9620716")
End Sub
Private Sub DocumentCompletedHandler(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
Console.WriteLine(WebBrowser1.DocumentText)
End Sub
End Class