关于selenium:selenium爬虫一行代码去掉所有webdriver痕迹

4次阅读

共计 1919 个字符,预计需要花费 5 分钟才能阅读完成。

问题

首先回顾前两篇 selenium 系列 selenium 爬虫应用了代理为什么还是被服务器断定为机器人?以及 selenium 爬虫应用代理状况下不设置这几个参数,代理就白加了,正确的敞开 webrtc 以及设置成代理的时区和地理位置,能够很好的帮咱们的浏览器伪装成正儿八经的失常浏览器,犹如滤镜能够把王大妈变身成风靡万千宅男的乔碧萝。然而,这还不够,风控系统有各种形式能够将你揪出来。所以应粉丝的要求,明天动笔了:

怎么如德芙般丝滑地去掉 selenium 烦人的 webdriver 痕迹?

起因

起因很简略,咱们应用 selenium+chromedriver 启动 chrome 的时候, 会在 chrome 的 navigator 以及 document 对象里注入一些属性,如果 web 服务器返回的 js 代码里有对这些属性的检测,那咱们就会被辨认为机器人在拜访。

解决方案

解决方案逻辑上很简略,就是 selenium 额定加了什么咱们去除掉什么。
咱们先上没有去掉 webdriver 的 selenium 代码

from selenium import webdriver
 
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
chrome_options.add_argument('lang=zh-CN,zh,zh-TW,en-US,en')
chrome_options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36')
driver = webdriver.Chrome("./chromedriver", chrome_options=chrome_options)
driver.get("https://bot.sannysoft.com/")
 

测试后果截图:

咱们能够看到,webdriver 被检测进去了,也就是说服务器晓得你应用了 selenium 拜访其网站。

咱们上去掉 webdriver 的代码的 selenium 代码

from selenium import webdriver
 
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
chrome_options.add_argument('lang=zh-CN,zh,zh-TW,en-US,en')
chrome_options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36')
chrome_options.add_argument("disable-blink-features=AutomationControlled")# 就是这一行通知 chrome 去掉了 webdriver 痕迹
driver = webdriver.Chrome("./chromedriver", chrome_options=chrome_options)
driver.get("https://bot.sannysoft.com/")
 

测试后果截图:

咱们能够看到通过在 chrome 启动的时候加一个 disable-blink-features=AutomationControlled 的 flag 就能够实现降维打击,移除掉 webdriver 的痕迹,妈妈再也不必放心你加班了……

如果你们认为做到以上:敞开 webrtc、设置浏览器时区和地理位置、去掉 webdriver 就居安思危了吗?

No,这还不够,服务器还能揪出你,你只能给老板发送以下短信。

而后持续加班。想晓得更多的反检测形式,咱们下期见!
图片源于:页游

正文完
 0