我正在使用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:x.x.x)Gecko / 20041107 Firefox / x.x)”
答案 0 :(得分:10)
您可以使用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的识别向您发送不同语言的内容,那么您无法从客户端进行更改。
答案 1 :(得分:1)
基于位置的搜索或页面通常通过ip完成,或者当您注册时,您告诉站点您所在的位置。您可能希望查看您希望看起来像您所在国家/地区的匿名代理。