2012-10-24 189 views
0

我使用下面的方法來從我的網站 - 獲取源代碼檢索鏈接HTML頁面

class WorkerClass1 
{ 
    public static string getSourceCode(string url) 
    { 
     HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 
     HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); 
     StreamReader sr = new StreamReader(resp.GetResponseStream()); 
     string sourceCode = sr.ReadToEnd(); 
     sr.Close(); 
     return sourceCode; 
    } 
} 

,然後實現WorkerClass1作爲所謂

private void button1_Click(object sender, EventArgs e) 
    { 
     string url = textBox1.Text; 
     string sourceCode = WorkerClass1.getSourceCode(url); 
     StreamWriter sw = new StreamWriter(@"path"); 
     sw.Write(sourceCode); 
     sw.Close(); 

    } 

這個偉大的工程和從我的主頁中檢索HTML,但是在頁面底部有一些鏈接,一旦檢索到第一個頁面,我將遵循這些鏈接。

有沒有辦法可以修改我的當前代碼來做到這一點?

+2

您應該從這裏查看優秀的HTMLAgility包:http://htmlagilitypack.codeplex.com/ - 解析HTML需要很多痛苦。然後你可以從你的主頁中提取鏈接,然後爲每個鏈接做一個HttpWebRequest,等等 - 聽起來就像你基本上構建了一個蜘蛛/機器人 – geedubb

回答

1

當然可以。

我會做的是閱讀HTML使用正則表達式尋找鏈接。對於每場比賽,我會將這些鏈接放入隊列或類似的數據結構中,然後使用相同的方法查看該來源。

考慮到HTMLAgilityPack的解析,它可能會更容易,即使尋找鏈接應該是相當簡單的使用谷歌。

+0

實現了htmlAgilityPack,並得到它瀏覽頁面感謝。 – Ebikeneser