【问题标题】:How does Chrome Driver work, but Firefox, PhantomJS and HTMLUnit not?Chrome 驱动程序如何工作,而 Firefox、PhantomJS 和 HTMLUnit 却不行?
【发布时间】: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


【解决方案1】:

两个词:浏览器指纹。这本身就是一个巨大的话题,正如塔伦所说,需要大量的研究才能把这个问题弄清楚。但我相信有可能。

【讨论】:

    猜你喜欢
    • 2021-10-12
    • 2013-01-29
    • 1970-01-01
    • 2023-04-09
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多