目录
- 1. 图片选择类验证码
- 2. 滑块验证码
- 3. 滑块出错,不加载
- 总结
欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
1. 图片选择类验证码
我们这里查看超级鹰文档
图片验证码返回的是一个 dic 结构为 x1,y1|x2,y2|x3,y3 ····
表示一个个要点击选择的图片的坐标,使用一个for循环遍历即可
# 用超级鹰去识别图片验证码
dic = chaojiying.PostPic(verify_img_element.screenshot_as_png, 软件id)
result = dic['pic_str'] # x1,y1|x2,y2|x3,y3 识别图像验证码得到的是一个个的
rs_list = result.split("|")
for rs in rs_list: # x1,y1
p_temp = rs.split(",")
x = int(p_temp[0])
y = int(p_temp[1])
2. 滑块验证码
取得滑块的xpath //*[@id="nc_1_n1z"]
- 整个滑块宽度 340,我们一般拖动300就够了
ActionChains是一种事件链库,链式编程,通过.
连接各个任务指令,顺次执行,任务链末尾是.perform()
drag_and_drop_by_offset
表示按下并拖拽参数为(对象,拖拽x,拖拽y)
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver import Chrome
btn = web.find_element_by_xpath('//*[@id="nc_1_n1z"]') #找到滑块对象
ActionChains(web).drag_and_drop_by_offset(btn, 300, 0).perform() #滑块向右移动300
3. 滑块出错,不加载
原因是被检测到是selenium自动化的操作了。
- chrome的版本大于等于88
option = Options()
# option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_argument('--disable-blink-features=AutomationControlled')
web = Chrome(options=option)
- chrome的版本号如果小于88,其实现在很少用这种浏览器了
web = Chrome()
web.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
navigator.webdriver = undefined
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
web.get(ur)
总结
大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2023 mzh
Crated:2023-3-1
欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
『未完待续』