鱼C论坛

 找回密码
 立即注册
查看: 1861|回复: 2

python遇到的问题,求解决

[复制链接]
发表于 2017-10-25 14:29:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我在使用python模拟登陆一个网站(www.yiban.cn)遇到页面过期,一直无法解决,请大家帮忙看下

密码采用的是RSA加密

加密公钥:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKsvhMbXD8qe+3kiF/U7Y4bqlq
Nwhvc2gr/RSugy7TFyB5DdS8I/HW0Feu/alDnvSSvUu1O9c7aQo4qMUrmHuqhhIF
lFyNAJNukXM93bfetdAgV4usNx4jcD0V/3wMNrFWgjmR+RsMjHN1afWnkMeaRKCJ
qZaLMyBEb1pAXoNv3QIDAQAB
-----END PUBLIC KEY-----

下面是我的代码:
  1. import base64
  2. import urllib.request
  3. from Crypto.PublicKey import RSA
  4. from http import cookiejar
  5. import time

  6. headers = {
  7.     'Users-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',
  8.     'Connection':'keep-alive'
  9. }

  10. #账号密码大家随便注册个吧。。。。。。
  11. user = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
  12. password = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
  13. #加密公钥在上面了,这是我的那个存放公钥的文件
  14. with open('./key.pem', 'r') as publickey:
  15.     publickey = publickey.read().encode()
  16.     encryptor = RSA.importKey(publickey)
  17. encryptedData = encryptor.encrypt(password.encode('utf-8'), 0)
  18. encryptedData = base64.b64encode(encryptedData[0])
  19. encrypwd = encryptedData[2:-1]


  20. keysTime = str(int(time.time()))
  21. login_data = {
  22.         'account':user,
  23.         'password':encrypwd,
  24.         'captcha':'',
  25.         'keysTime':keysTime
  26.     }


  27. login_data = urllib.parse.urlencode(login_data).encode()
  28. login_url = 'https://www.yiban.cn/login/doLoginAjax'
  29. filename = 'cookie.txt'
  30. cookie = cookiejar.MozillaCookieJar(filename)
  31. cookie_support = urllib.request.HTTPCookieProcessor(cookie)
  32. opener = urllib.request.build_opener(cookie_support)
  33. req = urllib.request.Request(login_url, login_data, headers)
  34. response = opener.open(req)
  35. cookie.save(ignore_discard=True,ignore_expires=True)
  36. html = response.read().decode('utf-8')
  37. print(html)
  38. for item in cookie:
  39.     print('Name = ' + item.name)
  40.     print('Value = ' + item.value)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-10-25 16:25:50 | 显示全部楼层
会不会是这个地方?
keysTime = str(int(time.time()))

我看那个页面的时间戳并没有使用整数,是有小数点的,你这个直接取整了,你把格式跟网站调成一样试试看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-25 17:03:06 | 显示全部楼层
gopythoner 发表于 2017-10-25 16:25
会不会是这个地方?
keysTime = str(int(time.time()))

我试过有小数点的,不行,还是返回的页面过期
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-25 13:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表