呲呲呀哈哈哈 2021-03-26 23:16 采纳率: 50%
浏览 437
已采纳

python古诗文网模拟登陆显示验证码错误?

import requests
from lxml import etree
from chaojiying import Chaojiying_Client

url = 'https://so.gushiwen.org/user/login.aspx?from=http://so.gushiwen.org/user/collect.aspx'
headers = {
         'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
     }
session = requests.Session()
url_text = session.get(url=url, headers=headers).text
tree = etree.HTML(url_text)
#p1 = tree.xpath('//*[@id="__VIEWSTATE"]/@value')[0]
#p2 = tree.xpath('//*[@id="__VIEWSTATEGENERATOR"]/@value')[0]
code_url = 'https://so.gushiwen.org/' + tree.xpath('//*[@id="imgCode"]/@src')[0]
img_data = session.get(url=code_url, headers=headers).content
with open('a.jpg', 'wb') as f:
    f.write(img_data)
chaojiying = Chaojiying_Client('账户名', '密码', 'id')	
im = open('a.jpg', 'rb').read()													
code_txt = chaojiying.PostPic(im, 1902)['pic_str']
print(code_txt)
print(len(code_txt))
#print(p1)
#print(p2)
#code_txt = input()
data = {
        '__VIEWSTATE': 'LFc35gKuaI5nTDyLFQZ737yo3AQkI6wmaakMdXHYqzzo8YwSEVvobAn3PMi7w1j59GLn5tJ9H3mnFvInB6D/SH6nfxpXPs+THkULE4I7sBJ7wyOZpGLZYxmwOb4=',
        '__VIEWSTATEGENERATOR': 'C93BE1AE',
        'from': 'http://so.gushiwen.cn/user/collect.aspx',
        'email': '@qq.com',
        'pwd': '密码',
        'code': code_txt,
        'denglu': '登录'
}
login_url = 'https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'
page_text = session.post(url=login_url, data=data, headers=headers).text
with open('login.html', 'w', encoding='utf-8') as f:
    f.write(page_text)

验证码平台为超级鹰

验证码与图片比对是正确的但最后的login.html打开显示验证码错误

  • 写回答

8条回答 默认 最新

  • 呲呲呀哈哈哈 2021-06-08 18:54
    关注

    古诗文网有两个域名一个cn一个org,获取验证码和登录要在同一个网站

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥50 深度学习运行代码直接中断
  • ¥15 关于#单片机#的问题,请各位专家解答!
  • ¥15 关于#单片机#的问题,请各位专家解答!
  • ¥20 需要完整的共散射点成像代码
  • ¥15 编写vba代码实现数据录入工作
  • ¥15 做过TCL海信电视小米电视相关影视会员软件私我
  • ¥15 Mapreduce是正常的,在运行其他jar包时并没有任何问题,只是在做LogCount.jar 时出的问题。如图所示
  • ¥15 ImportError: DLL load failed while importing _iterative: 找不到指定的模块。
  • ¥15 如何通过交互分析得出某高危患者对放疗获益更多
  • ¥15 相关性分析中,p<0.05, r=0.29,怎么评价相关性呢