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

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,获取验证码和登录要在同一个网站

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 2012VenusFM 2021-08-12 22:42
    关注

    img

    博主,post请求的参数_VIEWSTATE不是定值,每次都变的,其值可在验证码页面源码中找到相应标签,标签路径就是我图中所示,这样一改,就能登上去了,不过我不清楚的是,登上去的页面不像原页面那么丰富好看

    评论
  • 19m 2021-05-05 18:48
    关注

    我也遇到了这个问题,你解决了吗

    评论
  • 彦成- 2021-08-04 11:12
    关注

    一毛一样的错误

    评论
  • 呲呲呀哈哈哈 2021-08-04 16:52
    关注

    如果是用request. post验证码不正确的可以试下session

    评论
  • 2012VenusFM 2021-08-12 22:44
    关注

    img

    我保存获取的源码文件后,谷歌浏览器打开.html,页面就这样,感觉回到了2g3g按键手机时代,对比了下页面源码程序,感觉都一样啊!不知道为啥这个会是这样子

    评论
  • Xtraordinaire 2021-11-11 05:06
    关注

    古诗文网 我是手动输验证码都永远出错。。。这咋整?!

    评论
  • InkGrace 2023-11-29 19:24
    关注

    使用session来维持会话

    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 I350 Gigabit Network
  • ¥15 关于#abap#的问题,请各位专家解答!
  • ¥20 内网通过公网访问外网问题
  • ¥20 谁有这个东西 继续教育的
  • ¥15 怎么使请求通过cors
  • ¥15 WDM 驱动ACPI 相关疑问
  • ¥15 prism 跨窗体共享数据绑定 wpf
  • ¥15 hdl designer突然用不了系统的moduleware组件,请问有人遇到或者怎么解决吗?
  • ¥15 0基础计算机毕设,应该从哪开始?
  • ¥60 使用DKT40脑图划分ROI区域