python-爬虫(7)-验证码登陆-12306

登陆一个界面需要用户名密码、还有验证码

验证码的辨识,一般都是第三方,且需要付费的。  比如云打码,打码兔,超级鹰。12306用的是超级鹰。

如何使用呢?1.登陆注册 创建一个软件ID(选择验证码类型(文本,图片....),选择套餐)
                      2.下载Demo。网站会有支持各种语言的示例包。
以下图片是网上截的一个图,用于验证码的提取。
   1.连接解析验证码网站()
   2.读取本地保存的需要解析的验证码图片a.jpg.
   3.调用chaojiying.Post 得到验证码
python-爬虫(7)-验证码登陆-12306_第1张图片

整个验证码登陆的过程如下所示,上python代码,供大家参考
 

"""
得到验证码:
1.访问网页
2.解析网页,得到验证码图片的地址
3.图片保存到本地
4.识别验证码图片 得到字符串或者数字

"""

from lxml import etree
import requests
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}
#1.访问网页
login_url='https://***.com.cn/user/login.aspx?from=http://so.qushiwen.org/user/..'
page_text=requests.get(url=login_url,headers=headers).text
tree=etree.HTML(page_text)
#2.解析网页,得到验证码图片地址
img_path='https://***.com.cn'+tree.xpath('//*[@id="imgCode"]/@arc')[0]
img_data=requests.get(url=img_path,headers=headers).content
#3.图片保存到本地
with open ('./code.jpg','wb')as fp:
    fp.write(img_data)
#4.识别验证码
code_result=transform_code_img('./code.jpg',1004)
print(code_result)

 

你可能感兴趣的:(python)