登录验证码, 解决了
我不是为云打码打广告, 只是他确实好使
"""
验证码:
(1)url不变,图片不变--爬取url地址识别,填入
(2)url不变, 图片改变
·判断原理:在返回验证码的同时生成cookies, 利用cookies和验证码进行识别。
·解决方式:
(1)获取验证码url;
(2)请求验证码地址,获得验证码和cookies。
(3)识别验证码, 用(2)获得的cookies进行登录。
注:(2)条件下 验证码与cookies是对应的
ps:
request和selenium的cookies形式不同。
"""
# 针对url不变, 内容改变的爬虫
fromseleniumimportwebdriver
importrequests
importyun_code
driver =webdriver.Chrome()
driver.get("https://passport2.chaoxing.com/login?fid=11135&refer=http://i.mooc.chaoxing.com")
# 1、获取验证码url,返回图片内容和cookies
img = driver.find_element_by_id("numVerCode").get_attribute("src")
# 打印 driver 生成的 cookies
print( driver.get_cookies() )
# 2、请求验证码url
ans = requests.get( img )
# 3、答应验证码cookies
print(ans.cookies )
# 4、requests cookies转化为selenium cookies
ans_cookies= []
for item inans.cookies:
ans_cookies.append({'name':item.name , 'value':item.value} )
# 5、将验证码写到jpg里
with open(b"file/011.jpg", "wb")as f:
f.write( ans.content)
# 6、利用云打码获取验证码
code= yun_code.yun.get_code( 1004,b'file/011.jpg')
print(code )
driver.find_element_by_id("unameId").send_keys("username")
driver.find_element_by_id("passwordId").send_keys("password")
# 7、填写验证码
driver.find_element_by_id("numcode").send_keys(bytes.decode(code) )
# 8、将验证码cookies添加到driver
for item inans_cookies:
driver.add_cookie( item)
# 9、登录
driver.find_element_by_xpath("//*[@id='form']/table/tbody/tr/td/label/input").click()
楼主,有成品没? yun_code 的包在哪里? risingsun 发表于 2020-3-11 21:38
yun_code 的包在哪里?
没有,自己写的。
看云打码开发文档, 有滑动验证码的源码吗? TomRoosevelt 发表于 2020-4-28 06:31
有滑动验证码的源码吗?
滑动这块暂时没有解决办法 有无大佬有成语验证码识别的成品 求 xjl12322dzm 发表于 2021-7-31 16:29
这代码能能跑吗
可以,自己试过的,所以才发帖子的
为啥不用requests.Session(),然后用ddddocr的库 百事可乐呐 发表于 2021-9-14 16:19
为啥不用requests.Session(),然后用ddddocr的库
没有接触过这个,改天试试
页:
[1]