|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我在使用python模拟登陆一个网站(www.yiban.cn)遇到页面过期,一直无法解决,请大家帮忙看下
密码采用的是RSA加密
加密公钥:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKsvhMbXD8qe+3kiF/U7Y4bqlq
Nwhvc2gr/RSugy7TFyB5DdS8I/HW0Feu/alDnvSSvUu1O9c7aQo4qMUrmHuqhhIF
lFyNAJNukXM93bfetdAgV4usNx4jcD0V/3wMNrFWgjmR+RsMjHN1afWnkMeaRKCJ
qZaLMyBEb1pAXoNv3QIDAQAB
-----END PUBLIC KEY-----
下面是我的代码:
- import base64
- import urllib.request
- from Crypto.PublicKey import RSA
- from http import cookiejar
- import time
- headers = {
- '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',
- 'Connection':'keep-alive'
- }
- #账号密码大家随便注册个吧。。。。。。
- user = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
- password = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
- #加密公钥在上面了,这是我的那个存放公钥的文件
- with open('./key.pem', 'r') as publickey:
- publickey = publickey.read().encode()
- encryptor = RSA.importKey(publickey)
- encryptedData = encryptor.encrypt(password.encode('utf-8'), 0)
- encryptedData = base64.b64encode(encryptedData[0])
- encrypwd = encryptedData[2:-1]
- keysTime = str(int(time.time()))
- login_data = {
- 'account':user,
- 'password':encrypwd,
- 'captcha':'',
- 'keysTime':keysTime
- }
- login_data = urllib.parse.urlencode(login_data).encode()
- login_url = 'https://www.yiban.cn/login/doLoginAjax'
- filename = 'cookie.txt'
- cookie = cookiejar.MozillaCookieJar(filename)
- cookie_support = urllib.request.HTTPCookieProcessor(cookie)
- opener = urllib.request.build_opener(cookie_support)
- req = urllib.request.Request(login_url, login_data, headers)
- response = opener.open(req)
- cookie.save(ignore_discard=True,ignore_expires=True)
- html = response.read().decode('utf-8')
- print(html)
- for item in cookie:
- print('Name = ' + item.name)
- print('Value = ' + item.value)
复制代码 |
|