2010-10-24 29 views
0

我想在VS2008中製作一個可執行文件,它將使用vb.NET函數將網頁源代碼讀取到字符串變量中。問題在於該頁面不是* .html,而是* .aspx。vb.NET WebRequest讀取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

你能張貼創建'url'變量的代碼? – JaredPar 2010-10-24 01:43:29

回答

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 
+0

謝謝,這似乎工作!我認爲你需要cookie或其他東西是正確的。我可以看看。感謝您的幫助,WebBrowser DocumentText的想法會很好。歡呼聲 – 2010-10-24 02:28:06

+0

如果答案可以接受,請將其標記爲您接受的答案,以便答覆者得到他/她的協助。 – 2011-05-19 19:46:20