屏幕刮擦绕过旧的浏览器检测

时间:2015-08-05 07:41:33

标签: c# screen-scraping

我正在尝试使用C#筛选两家航空公司的网站,这样我就可以比较两个不同日期的两种票价。我设法在qua.com上做,但当我尝试在amadeus.net上做,我遇到这个网站给我回复

  

不支持旧版浏览器

因此使用webbrowser类并不起作用...使用httpwebrequest也不起作用。 所以我想使用webclient,但因为amadeus.net严重依赖于js或其他东西。我不知道在哪里发布网址。

有什么建议吗?

编辑:webclient.downloadstring也没有麦芽汁

2 个答案:

答案 0 :(得分:0)

尝试使用用户代理的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

答案 1 :(得分:0)

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

我发现我的IE本身是版本9,所以我升级了IE.11。然后再次尝试Graffito解决方案,但那不起作用。

所以最后我想我也可以按照article

将webBrowser更新为正确的版本