之所以写这篇文章,主要是因为:
先上selenium登录成功的效果图
碰到的问题
先说下碰到的问题,这可能也是很多人碰到的
解决方案
其实说起来你可能不信,我自己都不相信竟然如此简单,代码压根不用管 直接用第三方登陆就ok,亲测有效,微信,QQ,微博都ok, 就是下图这几个玩意儿,登录成功之后就可以开始各位的表演了, 天高任鸟飞,海阔凭鱼跃,加油,奥利给
再贴一波代码
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
#修改windows.navigator.webdriver,防机器人识别机制,selenium自动登陆判别机制
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
drive = webdriver.Chrome(options=chrome_options)
#CDP执行JavaScript 代码 重定义windows.navigator.webdriver的值
drive.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
url = 'https://www.zhihu.com/signin?next=%2F'
drive.implicitly_wait(10)
drive.get(url)
想看登录知乎的到这里就ok了,可以撤退了,如果对selenium不太熟悉的可以直接拉到最后,参考资料里,给各位指好路了,没办法,来者是客,为了满足各位,真是老费心了!
看在我这么卖力的份上,点赞,收藏,转发!来一波支持呗(可怜脸)
下面有一小节是本次实验中的意外收获,使用dos命令启动chrome浏览器,然后用selenium接管dos命令新启动的chrome浏览器
,然后使用selenium继续后续操作!
其实一开始绕不过验证的时候,我一直想这么搞得,但是没有成功过,这次试验知乎
偶然间实现了,所以下一节的名字叫意外收获,确实意外的惊喜
使用下面的方法登录知乎的话,原理一样,也是直接使用第三方账户登录
一种对小白更友好的爬虫方式
一、创建项目文件夹
二、dos命令启动chrome
chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\test_chrome\user_data"
三、为快捷方式添加参数
首先把桌面上的chrome的快捷方式,复制到程序底层目录 D:\test_chrome
修改快捷方式的属性信息,为快捷方式添加启动参数
四、项目启动
如果需要使用selenium进行爬虫,直接在项目底层文件夹下打开这个快捷方式即可
这里相当于手机里的应用双开,与你原先的浏览器是相互隔离的,但是与你的正常浏览器又没有什么区别,会保留所有记录,直接使用selenium 操纵chrome_driver的每次启动都是一个全新的浏览器,相比较而言,这种方法更类似人
,对应的也许相比直接驱动更安全
手动启动之后,用selenium接管过来就ok了,后面的模拟操作与之前没两样
接管chrome的代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
# 相当于对你刚刚启动的chrome进行debug 127.0.0.1指本地ip
# 9222是你之前制定的程序端口
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
# 指定自己的chromedriver路径
# 如果和我一样是使用的anconda chromedriver丢在scripts下面可以不用指定
#chrome_driver = "D:/Python/Python37/Scripts/chromedriver.exe"
driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
print(driver.title)
找了两篇post请求相关的登录知乎文章,算是比较新的文章 进阶玩家可以试试,时间比较久的19年及之前的相关登录知乎的相关文章基本没有借鉴性了
我自己的 selenium相关文章系列 【1】关于修改window.navigator.webdriver代码失效问题 【2】selenium爬虫相关报错解决 【3】python 爬虫之selenium可视化爬虫 【4】出师未捷身先死的sycm数据自动化 【5】一文带你了解Python爬虫(一)——基本原理介绍 【6】一文带你了解Python爬虫(二)——四种常见基础爬虫方法介绍