2013-02-26 101 views
5

我正在使用敏捷包解析HTML,以下問題What is the best way to parse html in C#? 和我得到了很好的結果:) 問題出現在我在某些網頁中登錄時,結果是基於我的位置,因此對於像我在西班牙的例子,我得到了西班牙地區的成績,我想改變一下,就好像我在英格蘭一樣,怎麼能做到?我的意思是我必須在用戶代理中更改它。 (我用作用戶代理「Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:xxx)Gecko/20041107 Firefox/xx)」HTML敏捷包設置

回答

9

您可以使用WebClient.DownloadString方法,設置HTTP請求頭以下載網頁的內容,然後將其提供給HTML敏捷性包。

UserAgent不是控制語言的東西。它是Accept-Language標題。因此,例如:

using (var client = new WebClient()) 
{ 
    client.Headers[HttpRequestHeader.AcceptLanguage] = "es-ES"; 
    client.Headers[HttpRequestHeader.UserAgent] = "some user agent if you wish"; 
    string html = client.DownloadString("http://example.com"); 
    // feed the HTML to HTML Agility Pack 
    var doc = new HtmlDocument(); 
    doc.LoadHtml(html); 

    // now do the parsing 
} 

但是,如果網站使用基於IP的認可向您發送不同語言的內容沒有多少,你可以從客戶端做些什麼來改變這一點。

+0

我也使用過WebClient了,而且在html內容中我有 - > lang =「es」,所以問題是我該如何改用英文? – jobormo 2013-02-26 22:24:04

+0

太棒了!這就是我想要的,不要擔心網站不使用IP識別:) – jobormo 2013-02-26 22:33:02

1

基於位置的搜索或頁面通常通過ip完成,或者當您註冊時,您告訴網站您在哪裏。你可能想看看你想看起來像你在一個國家內的匿名代理