【问题标题】:Screen scrape that bypass older browser detection绕过旧浏览器检测的屏幕抓取
【发布时间】:2015-08-05 07:41:33
【问题描述】:

我正在尝试在 C# 中筛选报废两家航空公司的网站,以便我可以比较许多不同日期的两种票价。我设法在 qua.com 上做,但是当我尝试在 amadeus.net 上做时,我遇到这个网站给我的回应

不支持旧版浏览器

所以使用 webbrowser 类不起作用...使用 httpwebrequest 也不起作用。 所以我想使用 webclient 但因为 amadeus.net 很大程度上基于 js 或其他东西。我不知道在哪里发布网址。

有什么建议吗?

编辑:webclient.downloadstring 也不起作用

【问题讨论】:

标签: c# screen-scraping


【解决方案1】:

尝试在用户代理中使用 Navigate 重载:

string useragent = "Mozilla/5.0 (Windows NT 6.0; rv:39.0) Gecko/20100101 Firefox/39.0" ;
webBrowser.Navigate(url, null, null,useragent) ;

另一种方法是使用另一个 WebBrowser,例如 awesomium

【讨论】:

  • 使用适用于您网站的 Firefox 或 IE 10,连接到此 url 以获取可接受的用户代理字符串并在您的代码中尝试。
【解决方案2】:

在研究了在 httpWebrequest 中传递一个假的用户代理(来自 Jodrell)之后,这可行,但我必须处理 cookie,这样会变得复杂。 Graffito 建议在 webBrowser 中重载 useragent,但没有工作,因为它给了我很多 JS 加载错误,这是因为在该网站本身中,它需要一个适当的现代浏览器才能工作。

我发现我的IE本身是9版本,所以我升级了IE.11。然后再次尝试了 Graffito 解决方案,但没有奏效。

所以最后我想我不妨按照article 将 webBrowser 更新到正确的版本

【讨论】:

    猜你喜欢
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 2012-09-18
    • 2021-11-04
    • 1970-01-01
    相关资源
    最近更新 更多