python模拟登入某平台+破解验证码

概述

python模拟登录平台,遇见验证码识别!用最简单的方法selenium+da破解验证码,来自动登录平台

详细

python用selenium+xpath模拟登录+破解验证码

先随便找个小说平台
用户登陆 - 书海小说网用户登陆 - 书海小说网用户登陆 - 书海小说网

准备工作

selenium这个模块要用到驱动浏览器,我的是火狐浏览器,win10x64位的,所以我下载了最新版本,

https://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-win64.ziphttps://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-win64.zip[https://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-win64.zip](https://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-win64.zip "https://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-win64.zip")

当然这个可以根据你们的浏览器来,不一定非要用火狐,下载好了,把文件放到python文件里就可以

破解验证码,那就用打码平台,我现在用的是超级鹰!

里面有很多语言开发文档,咱是python,当然是选python

需要的东西都准备好了,那开始吧

1、导入火狐的驱动浏览器引擎和超级鹰开发文档里面的Chaojiying_Client类

复制代码
    from selenium.webdriver import Firefox
    from chaojiying import Chaojiying_Client

2、锁定url、利用selenium跳转到这个网址页面

复制代码
web.get('http://www.shuhai.com/login')

3、先观察一下这个登录界面

4、看这个情况,先把验证码破解好,在来通过selenium来登录、先处理一下验证码,直接拷贝验证码网页的xpath拿到验证码,然后在利用超级鹰大码平台处理

复制代码
img = web.find_element_by_xpath('//*[@id="checkcode2"]').screenshot_as_png

5、验证码拿到了!然后用超级鹰打码平台,破解

复制代码
chaojiying = Chaojiying_Client('用户名', '用户密码', '96001')

dic = chaojiying.PostPic(img,1902)

# 这个两段代码超级鹰开发文档里面有,直接拷贝过来!用户名:账号!用户密码:密码

6、破解到验证码,现在把它提取出来

复制代码
verify_code = dic['pic_str']

7、验证码现在搞好了!现在就是把用户名、密码、和提取好的验证码放进来!和验证码一样,直接拷贝用户名、密码、的xpath,然后直接放进去就可以了

复制代码
复制代码
   # 通过xpath填入用户名
   web.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/div[2]/form/div[2]/div[1]/div[2]/input').send_keys("@the虫子")
复制代码
复制代码
   # 填写密码
   web.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/div[2]/form/div[2]/div[2]/div[2]/input').send_keys("zhang123456")
复制代码
复制代码
   # 填写验证码
   web.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/div[2]/form/div[2]/div[3]/div[2]/input').send_keys(verify_code)

8、设置个时间,避免太快卡主,设置填写用户名、密码、验证码为5秒

复制代码
复制代码
   time.sleep(5)

9、用户名、密码、验证码都填写好了,现在就差登入了,和上面一样,直接拷贝登入按钮的xpath

复制代码
web.find_element_by_xpath('//*[@id="dosubmit"]').click()

10、同样也设置个点击登入时间为5秒

复制代码
复制代码
   time.sleep(5)

这样我们的模拟登入+验证码识别程序就写完了,咱看看架构和运行结果

项目架构

运行结果

相关推荐
wjs20245 分钟前
jEasyUI 树形网格动态加载详解
开发语言
用户8356290780519 分钟前
Python 操作 Word 文档节与页面设置
后端·python
西西弗Sisyphus12 分钟前
Python 闭包的经典坑
python·闭包
西西弗Sisyphus16 分钟前
Python 在dataclasses 里,field() 能给可变、不可变数据分别设置安全的默认值
python·field·dataclasses
xlq2232227 分钟前
41.线程封装与互斥
linux·开发语言
西西弗Sisyphus34 分钟前
Python @dataclass 有 `__post_init__` 和 无 `__post_init__` 的对比
python·dataclass·__post_init__
独隅34 分钟前
PyCharm 开启硬换行的方法
ide·python·pycharm
不爱吃炸鸡柳37 分钟前
算法复杂度从入门到精通:时间与空间复杂度全解析
开发语言·c++·算法
游乐码1 小时前
c#lambad表达式
开发语言·c#
weixin_408099671 小时前
python请求文字识别ocr api
开发语言·人工智能·后端·python·ocr·api·ocr文字识别