【问题标题】:HTML Agility Pack settingsHTML 敏捷包设置
【发布时间】:2013-02-26 22:11:47
【问题描述】:

我正在使用 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)”

【问题讨论】:

    标签: c# html


    【解决方案1】:

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

    【讨论】:

    • 我也用过WebClient,在html内容中我有--> lang="es",所以问题是怎么改成英文呢?
    • 太棒了!这就是我想要的,不用担心网站不使用 IP 识别 :)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-01-26
      • 1970-01-01
      • 2016-06-01
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多