1. selenium免登录剔除爬虫特征

selenium 免登录打开 Chrome 浏览器

声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载.

未经授权,严禁转载,如需转,联系开白.

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关.

现在只对常读和星标的公众号才展示大图推送,建议大家把「雪之梦技术驿站」“设为星标”,否则下次可能看不到了!

微信公众号「雪之梦技术驿站」

1.1. 引言

在 Windows/Mac 上启动 Chrome 时追加参数是一种常用的技巧,可以帮助你自定义启动行为,比如无界面模式、指定配置文件、禁用某些功能等。

1.2. 场景

selenium 爬虫模拟人工操作可能会被某些网站识别出爬虫行为,或者抓取某些需要登录后才能访问的数据不想登录,就可以使用已登录的浏览器进行打开,这样就能避免上述行为.

例如: 人工访问爬虫识别网站https://bot.sannysoft.com/

如果是简单的 selenium 打开上述网站,检测结果如下:

from selenium import webdriver

driver = webdriver.Chrome()
# 反机器人检测
driver.get('https://bot.sannysoft.com')
driver.maximize_window()
time.sleep(random.randint(10, 30))

如果使用已打开的 Chrome 浏览器,selenium 自动化打开爬虫识别网站,检测通过!

1.3. 自定义 Chrome 浏览器启动行为

下面就详细说一下如何做到的,seleium 使用已打开的 Chrome 浏览器自动化.

思路: 提前打开 Chrome 浏览器(添加自定义启动行为),selenium 再连接到刚才的浏览器即可实现免登录真人工操作.

1.3.1. 第一步: 找到Google Chrome二进制文件

应用程序 > Google Chrome.app > 右键:显示包内容

Contents > MacOS > Google Chrome

1.3.2. 第二步: 添加启动参数自定义启动行为

如果是 windows 平台可参考下面命令自定义浏览器启动参数:

"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9500 --user-data-dir="C:\Users\Administrator\AppData\Local\google\Chrome\selenium"

如果是 Mac 平台可找到二进制文件,自定义参数定义浏览器启动行为:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9500 --user-data-dir="/Users/snowdreams1006/Documents/develop/chrome/selenium"

最后,提供一份selenium连接远程浏览器的源码,仅供学习参考如下:

1.4. 总结

在使用 selenium 做浏览器自动化的过程中,经常性遇到被某些网站识别成爬虫而拒绝服务,或者某些登录网站比较麻烦,能直接连接到已登录的浏览器就能解决这类问题.

1.5. 推荐

1.6. 关注

微信公众号「雪之梦技术驿站」

欢迎扫码关注,私信回复『加群』一起交流技术

最后更新时间: 2025-02-07 10:27:51
作者: 雪之梦技术驿站
来源: 雪之梦技术驿站
本文原创发布于「雪之梦技术驿站」,转载请注明出处,谢谢合作!

/snowdreams1006-wechat-open.png

results matching ""

    No results matching ""