0

我想用Python + Selenium + BS4来抓取一个动态内容(javascript)页面,该页面随机阻止我的请求(软件可能是:F5 AMS)。Chrome驱动程序如何工作,但Firefox,PhantomJS和HTMLUnit没有?

我设法绕过这个东西,通过更改我指定的每个浏览器的用户代理。事情是,只有Chrome驱动程序可以通过拒绝。相同的代码,调整为PhantomJS或Firefox驱动程序被阻止不断,就像我甚至没有更改用户代理。

我必须说我也是多线程,也就是说,同时启动4个浏览器。

为什么会发生这种情况? Chrome Webdriver必须提供什么功能才能通过防火墙,其他则不会?

我真的需要得到结果,因为我想更改为Firefox,因此,我想让Firefox像Chrome那样通过。

+1

有些网站具有抓取保护功能,即使您伪造了用户代理,也可以轻松检测浏览器的类型。每种Javascript行为之间有典型的区别,可用于检测您的实际浏览器。这项工作是保护刮擦,我认为他们做得很好。很难知道他们正在使用什么样的组合,并需要从你身边得到体面的研究时间。 –

+0

但是,如果Chrome驱动程序每次更改用户代理时都会绕过安全性,那该怎么办?我不能用这个事实来使Firefox工作吗? (只知道更改geckodriver中的用户代理不起作用) –

回答

1

两个字:Browser Fingerprinting。这本身就是一个巨大的话题,塔伦提到需要大量的研究来解决这个问题。但我相信可能。

相关问题