6

我正在使用 Agility Pack 解析 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)”</p>

4

2 回答 2

12

您可以使用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 的识别来向您发送不同语言的内容,那么您无法从客户端做很多事情来改变它。

于 2013-02-26T22:13:52.833 回答
1

基于位置的搜索或页面通常是通过 ip 完成的,或者当你注册时,你告诉网站你在哪里。您可能想在您希望自己所在的国家/地区查看匿名代理。

于 2013-02-26T22:17:07.990 回答