python selenium自动化过指纹检测
本帖最后由 devilpanama 于 2024-3-8 23:46 编辑最近有个自动化的项目,用的是python+selenium实现网页自动化,目的是实现自动化发文
问题:正常打开发布页面可以发布并且网页自带了自动保存功能,用selenium打开的浏览器提示保存失败,也无法进行后续操作
初步分析:现在一般网站的反爬都是检测UA头或者js检测环境,分析失败和成功的区别也就是selenium的问题
初步尝试:先用调试模式打开浏览器,再用python操作
start chrome --remote-debugging-port=9527 --user-data-dir="F:\selenium"
打开浏览器后运行python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 以下代码是使用 Python 接管已经打开的浏览器
options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:64829")
browser = webdriver.Chrome(options=options)
结果:失败
再次分析:想到了之前看的一篇文章,关于浏览器指纹的问题,大概意思就是不管你怎么打开浏览器,浏览器呈现出来的特征值都一样,即视为同一指纹同一个环境
查看指纹特征网址:https://bot.sannysoft.com/
方法:改变指纹特征
工具:stealth.min.js是puppeteer中用于抹去自动化程序特征的。当他被单独提取出来后就可以在selenium中加载并使用,使得可以抹掉selenium中的自动化特征,从而绕过一些网站或者验证程序的机器人检测。
代码如下
from selenium import webdriver
STEALTH_JS = r'stealth.min.js'
with open(STEALTH_JS) as f:
js = f.read()
# print(js)
chromedriver_path = r"C:\XXXXXXXX\chromedriver.exe"
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(chromedriver_path,options=options)
driver.execute_cdp_cmd(
cmd="Page.addScriptToEvaluateOnNewDocument",
cmd_args={
"source": js
}
)
# 打开一个标签页
driver.get("https://bot.sannysoft.com/")
结果:成功
看了大佬的分享,突然有了学python的想法
本帖最后由 lzmomo 于 2024-3-20 09:03 编辑
运行后提示
driver = webdriver.Chrome(chromedriver_path, options=options)
TypeError: __init__() got multiple values for argument 'options' 正在学Python,以后应该能用上 谢谢分享。 奇怪的知识又增加了,我就说之前怎么有些站爬不了。 这种应该只适合一般简单 的网站,如果像baidu这种,应该也是无效,我现在试过一些网还是会出现真人验证,而使用正常 chrome就不会 正在学Python,以后应该能用上 itanium 发表于 2024-3-9 15:29
这种应该只适合一般简单 的网站,如果像baidu这种,应该也是无效,我现在试过一些网还是会出现真人验证,而 ...
没有通用的爬虫方法,都是见招拆招 看了大佬的分享,突然有了学python的想法 果然爬虫还是道高一尺魔高一丈,学习了 正在学爬虫在抓取腾讯视频遇到困难