吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5692|回复: 9
收起左侧

[Python 转载] 登录验证码, 解决了

[复制链接]
山野村夫-陈墨 发表于 2020-3-11 19:56

我不是为云打码打广告, 只是他确实好使
[Python] 纯文本查看 复制代码
"""
    验证码:
        (1)url不变,图片不变--爬取url地址识别,填入
        (2)url不变, 图片改变
            ·判断原理:  在返回验证码的同时生成cookies, 利用cookies和验证码进行识别。
            ·解决方式:
                        (1)获取验证码url;
                        (2)请求验证码地址,  获得验证码和cookies。
                        (3)识别验证码, 用(2)获得的cookies进行登录。
            注:(2)条件下 验证码与cookies是对应的
    ps:
        request和selenium的cookies形式不同。


"""
# 针对url不变, 内容改变的爬虫

from  selenium  import  webdriver
import  requests
import  yun_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 in  ans.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[1]) )

# 8、将验证码cookies添加到driver
for item in  ans_cookies:
    driver.add_cookie( item  )

# 9、登录
driver.find_element_by_xpath("//*[@id='form']/table/tbody/tr[7]/td[2]/label/input").click()


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yuanmengxiaozi 发表于 2020-3-11 20:12
楼主,有成品没?
risingsun 发表于 2020-3-11 21:38
 楼主| 山野村夫-陈墨 发表于 2020-3-11 22:27
TomRoosevelt 发表于 2020-4-28 06:31
有滑动验证码的源码吗?
 楼主| 山野村夫-陈墨 发表于 2020-5-2 21:34
TomRoosevelt 发表于 2020-4-28 06:31
有滑动验证码的源码吗?

滑动这块暂时没有解决办法
17621481905 发表于 2021-7-31 15:53
有无大佬有成语验证码识别的成品 求
 楼主| 山野村夫-陈墨 发表于 2021-8-4 23:40

可以,自己试过的,所以才发帖子的
百事可乐呐 发表于 2021-9-14 16:19
为啥不用requests.Session(),然后用ddddocr的库
 楼主| 山野村夫-陈墨 发表于 2021-9-19 23:37
百事可乐呐 发表于 2021-9-14 16:19
为啥不用requests.Session(),然后用ddddocr的库

没有接触过这个,改天试试
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表