【发布时间】:2018-02-11 04:44:57
【问题描述】:
我正在尝试使用 Python + Selenium + BS4 抓取动态内容 (javascript) 页面,该页面随机阻止我的请求(软可能是:F5 AMS)。
我设法通过更改我指定的每个浏览器的用户代理来绕过这个问题。问题是,只有 Chrome 驱动程序可以忽略拒绝。为 PhantomJS 或 Firefox 驱动程序调整的相同代码一直被阻止,就像我什至没有更改用户代理一样。
我必须说我也是多线程的,也就是说,同时启动4个浏览器。
为什么会这样? Chrome Webdriver 必须提供哪些可以通过防火墙而其他不能通过的功能?
我确实需要得到结果,因为我想换成 Firefox,因此,我想让 Firefox 像 Chrome 一样通过。
【问题讨论】:
-
有些网站有抓取保护,即使您伪造了用户代理,它们也可以轻松检测浏览器类型。每个 Javascript 行为之间存在典型差异,可用于检测您的实际浏览器。这项工作是保护刮擦,我认为他们做得很好。很难知道他们为此使用了什么样的组合,并且需要您花费大量的研究时间。
-
但是每次我更改用户代理时 Chrome 驱动程序都会绕过安全性的提示呢?我不能利用这个事实让 Firefox 也能正常工作吗? (只知道。在 geckodriver 中更改用户代理不起作用)
标签: python selenium web-scraping selenium-chromedriver geckodriver