有些网站的会用js验证是用户打开的浏览器还是爬虫程序,检测方法不做赘述。以某政采云为例,发现直接使用selenium然后滑动滑块一秒被检测,恶心的一。起初预想的是滑块的问题,经过各种操作,用上初中物理,匀变速直线运动滑动滑块,依旧被识别,便越发坚定了我网站有检测程序的想法。于是我直接用程序打开浏览器,手动滑块,居然还是被检测,便已十分确定了。
既然程序打开会被检测那干脆直接人为打开算了,我们需要先配置环境变量:
export PATH="/Applications/Google Chrome.app/Contents/MacOS:$PATH"
这是mac下的chrome的默认路径,各位mac用户可以放心大胆的用。
source ~/.
输入命令按tab选一个目录。我这里是.bash_profile.txt
利用Chrome DevTools协议。它允许客户端检查和调试Chrome浏览器。
继续输入命令打开浏览器
Google\ Chrome --remote-debugging-port=9222 --user-data-dir="/Users/joe/Downloads"
后面这个根据你自己的路径来,我这里是/Users/joe/Downloads
此时系统会为你自动打开一个浏览器,设置好后启动python脚本
options = webdriver.ChromeOptions() options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") chrome_driver = "/usr/local/bin/chromedriver" browser = webdriver.Chrome(executable_path=chrome_driver, options=options)
浏览器正常打开,滑块通过,完美!