2011-01-07 88 views
0

我想找到我的鏈接位於給定的seatch單詞的位置,無需導航到每個頁面。是否有可能,我使用的WinForms C#獲取谷歌搜索位置

可以說,我必須找到搜索詞社交網絡鏈接facebook.com,看看哪個谷歌網頁是這個環節目前

+0

該代碼非常錯誤。另外,它不會超出第一頁。 – SLaks 2011-01-07 19:48:33

+0

任何想法,以改善它 – 2011-01-07 19:55:45

回答

2

老兄,你不應該用正則表達式解析HTML 。我沒有解釋爲什麼在這裏,有很多關於爲什麼在這裏的信息。一個解決方案,使使用HtmlAgilityPack和XPath的所有結果:

public IEnumerable<string> GetResults(string html) { 
    HtmlDocument doc = new HtmlDocument(); 
    doc.LoadHtml(html); 

    foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//span[@class='tl']/h3/a")) 
    { 
     var value = link["href"].Value; 
     yield return value; 
    } 
} 

這將獲取匹配我們的XPATH //span[@class='tl']/h3/a(SERP的項目,沒有PPC等)的所有鏈接,並返回href屬性。

一個更簡單的方法讓你的HTML是使用Web客戶端,如:

using(var wc = new WebClient()) 
{ 
    return wc.DownloadString("http://www.google.com/search?q=" + HttpUtility.HtmlEncode(searchTerm)); 
} 

顯然,你需要做的下載和比較自己,但是這應該讓你去。