Python 尽管IP和用户代理轮换刮削,但被禁止

Python 尽管IP和用户代理轮换刮削,但被禁止,python,selenium,docker,google-chrome,web-scraping,Python,Selenium,Docker,Google Chrome,Web Scraping,即使我在Selenium Headless Chrome上使用代理和用户代理轮换(我通过https://free-proxy-list.net/和TOR,并使用https://httpbin.org/其中显示了预期的代理ip和用户代理,以便我知道该代理应该工作),在Glassdoor的主页“”上尝试使用新的IP和用户代理时,我仍然被阻止 作为背景: 在本地运行的Docker容器中开发 在Selenium Python中使用无头Chrome 使用最近从https://free-proxy-lis

即使我在Selenium Headless Chrome上使用代理和用户代理轮换(我通过
https://free-proxy-list.net/
和TOR,并使用
https://httpbin.org/
其中显示了预期的代理ip和用户代理,以便我知道该代理应该工作),在Glassdoor的主页“”上尝试使用新的IP和用户代理时,我仍然被阻止

作为背景:

  • 在本地运行的Docker容器中开发
  • 在Selenium Python中使用无头Chrome
  • 使用最近从
    https://free-proxy-list.net/
    和Selenium,以及旋转TOR代理(两者给出相同的结果)
  • 使用
    https://developers.whatismybrowser.com/useragents/explore/software_name/chrome/
    与Docker容器操作系统和浏览器规格一致(X11和Chrome/6或Chrome/7,因此没有JS显示问题)
  • 刮玻璃门的工作公告。其他求职网站工作正常,所以它是专门针对Glassdoor的
  • 如果我使用ProtoVPN这样的免费本地VPN提供商,它可以正常工作,但是这个解决方案不可扩展,因为整个想法不是在这个项目上花钱,而是让收集自动化(不是商业产品,只是想要足够的数据来实践一些NLP/机器学习)
这是Chrome设置:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--disable-translate")
chrome_options.add_argument(f"--proxy-server={ip}")
chrome_options.add_argument(f"user-agent=[{random_user_agent()}]")
我的理论是Glassdoor正在测试我的浏览器,它泄露了我正在使用代理,或者我有一个设置泄露了它是一个自动浏览器。对正在发生的事情有什么想法吗

编辑:
我已经检查了硒被检测到的可能性,但事实是,即使我使用硒和免费代理/TOR/VPN,在VPN处于活动状态时进行抓取没有问题,因此这意味着问题必须在使用代理vs VPN时出现,因此可能有人可以帮助我了解这是如何发生的。

我认为这与您的IP地址或浏览器代理无关。您可能会被阻止,因为该站点正在尝试阻止刮取。请参阅Glassdoor有一个API,您可以作为合作伙伴访问。(您需要与他们联系以获取访问权限)它应该为您提供所需的一切,而无需删除网站


我能够使用简单的python脚本访问此页面

也许网站已经通过selenium自动识别了浏览器的指纹。也许试试我的剧本。 另外,免费代理通常质量很差,也许你可以使用服务器或付费代理

要选择最佳用户代理,您可以通过以下方式使用该代理:

1导入请求
2.
3个标题={
4“权限”:“www.glassdoor.fr”,
5“升级不安全请求”:“1”,
6“用户代理”:“Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/75.0.3770.142 Safari/537.36”,
7‘接受’:‘text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed exchange;v=b3’,
8“接受编码”:“gzip,deflate,br”,
9‘接受语言’:‘fr-fr,fr;q=0.9,en-US;q=0.8,en;q=0.7’,
10 }
11
12个参数=(
13('countryRedirect','true'),
14 )
15
16响应=请求。获取('https://www.glassdoor.fr/index.htm,headers=headers,params=params)
17打印(回复内容)

这次我支持@JeffC。我对这个问题感到不舒服,因为这似乎是你在询问如何绕过安全功能的建议。有很多种方法可以对浏览器进行指纹识别和检测。。。你只触及了IP和用户代理的表面。但是,你应该遵守他们的使用条款,停止使用。我已经阅读了你向我提出的问题,尽管理解硒的局限性非常有帮助,但它仍然不能解释为什么它只在我使用免费代理时检测,我可以假设他们会以与我相同的方式提取来阻止,但是使用TOR很难用同样的方式解释,因为没有预先确定的IP的AFAIK列表。另外,为什么我在使用VPN时没有被阻止?答案应该更多地围绕使用代理或VPN之间的区别。我猜他们会留下不同的签名,有些网站不允许你使用代理?