2009-04-17 97 views
0

我正在做一個項目,其中我需要登錄到一個網站和刮網頁內容。我試了下面的代碼:我該如何屏幕抓取網頁郵件頁面?

protected void Page_Load(object sender, EventArgs e) 
{ 
    WebClient webClient = new WebClient(); 
    string strUrl = "http://www.mail.yahoo.com?username=sakthivel123&password=operator&login=1"; 
    byte[] reqHTML; 
    reqHTML = webClient.DownloadData(strUrl); 
    UTF8Encoding objUTF8 = new UTF8Encoding(); 
    Label1.Text = objUTF8.GetString(reqHTML1); 
} 

這刮擦郵件的登錄頁面。但我需要刮我的收件箱的細節。請告訴我如何進一步進一步,在此先感謝。

+0

我想雅虎!會有更嚴格的安全功能,以便簡單的查詢字符串GET不足以登錄到您的帳戶。我現在無法訪問它,但也許它使用HTTPS隧道。 – Cerebrus 2009-04-17 05:12:52

回答

1

請參閱此questions及相關問題。我們必須先研究網頁的HTML源代碼,然後才能正確取消。因此,請手動登錄並獲取收件箱頁面的來源,然後研究它以進行刮取。

爲什麼不使用雅虎的webmail API?這是一個更好的解決方案。

+0

我需要登錄並取消網頁。我有如何取消頁面的代碼。但我需要自動登錄並取消網頁內容 – Sakthivel 2009-04-17 05:58:58

0

我建議你先使用名爲Fiddler的工具來分析目標站點和瀏覽器之間的通信。你可以看看所有的http頭文件,cookies,內容等。

一旦您的webClient對象能夠複製瀏覽器的操作,包括登錄,設置適當的cookie等,您可以自動執行該過程。

最後,一旦你有所需的HTML,使用正則表達式來提取你想要的信息。