模拟登陆古诗文网(含验证码识别)

准备

  • 超级鹰平台识别模块(我已导入成yzm模块)
  • 初级爬虫获取网页能力
  • lxml数据解析
  • session对象使用

确定登录URL ,获取载荷信息

请添加图片描述
注意 前两个参数可在首页源码中搜索到

源码

import requests
import yzm
from lxml import etree

session=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)

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值