本文主要是介绍模拟登陆古诗文网(含验证码识别),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
准备
- 超级鹰平台识别模块(我已导入成yzm模块)
- 初级爬虫获取网页能力
- lxml数据解析
- session对象使用
确定登录URL ,获取载荷信息
注意 前两个参数可在首页源码中搜索到
源码
import requests
import yzm
from lxml import etreesession=requests.Session() #创建session对象headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36'
}url='https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.org/user/collect.aspx'
page_text=session.get(url=url,headers=headers).content
tree=etree.HTML(page_text)
code_img_src='https://so.gushiwen.cn'+tree.xpath('//*[@id="imgCode"]/@src')[0]
img_data=session.get(url=code_img_src,headers=headers).content
with open('./code.jpg','wb')as fp:fp.write(img_data)
code_text=yzm.get_code('code.jpg',1004)
code0=code_text['pic_str']
print(code0)#识别结果为:
# {'err_no': 0, 'err_str': 'OK', 'pic_id': '8170914228036700005', 'pic_str': 'e3ws', 'md5': '57a53436632876e16c8fca496705b07a'}
__VIEWSTATE = tree.xpath('//*[@id="__VIEWSTATE"]/@value')[0]
__VIEWSTATEGENERATOR = tree.xpath('//*[@id="__VIEWSTATEGENERATOR"]/@value')[0]
data={'__VIEWSTATE':__VIEWSTATE,'__VIEWSTATEGENERATOR':__VIEWSTATEGENERATOR,'from':'http://so.gushiwen.org/user/collect.aspx','email':'你的登录号码','pwd':'你的密码','code':code0,'denglu':'登录'
}
response=session.post(url=url,headers=headers,data=data)
print(response.status_code)# 考虑1:动态变化的请求参数
# 通常会隐藏在当前对应的前端页面的代码中detail_url='https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'
detail_page_text = session.post(url=detail_url,headers=headers,data=data).text
with open('a.html','w',encoding='utf-8') as fp:fp.write(detail_page_text)
这篇关于模拟登陆古诗文网(含验证码识别)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!