2011-11-14 82 views
0

我的目標只是從.Net網絡瀏覽器獲取數據。首先,我裝的登錄頁面(例如Gmail)使用HTML敏捷性包,如何從網站獲取數據登錄後(Html Agility pack)

public void start_parsing(string URL_) 
{ 
    var webGet = new HtmlWeb();    
    var document = webGet.Load(URL_); 
} 
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{     
    string url = webBrowser1.Url.ToString();    
    start_parsing(webBrowser1.Url.ToString());  
} 

「文件」成功獲取的HTML數據在第一(主頁),但是當我日誌中的「文件「變量不包含任何數據,肯定有一些必須添加的函數,但我不知道它們是什麼。

任何幫助表示讚賞!

+0

它會幫助,如果你發佈了一個更徹底的例子......你提到登錄,但你基本上沒有代碼在那裏工作... – Timmerz

回答

0

確定您還沒有登錄?創建一個new HtmlWeb()將擺脫所有可能會讓您登錄會話數據的cookie。

您可能需要在登錄後複製標題項目,或者確保代碼重用相同的HtmlWeb對象,以保持相同的Header值。

+0

它不認爲我仍然登錄,不知道!我複製了HtmlWeb並將其作爲公共變量,但仍然沒有改變! – dimazaid

+0

看着HtmlWeb,設置屬性'webGet.UseCookies'也可能需要。要進行調試,您可以將您的'document'變量轉儲到一個文件中,並使用webbrowser打開它以查看代碼實際下載的內容。一個簡單的方法來做到這一點:'File.WriteAllText(@「c:\ temp \ test.html」,document.DocumentNode.OuterHtml)' – Thymine

+0

我試過這樣做,它保存的頁面與登錄頁面相同 https://accounts.google.com/ServiceLogin?service=mail&passive=true&continue=https://mail.google.com/mail/x/quu8epfhjlzr/&ss=1&scc=1<mpl=ecobh&nui=5&btmpl=mobile – dimazaid