資源簡介
python3.7 使用requests庫模擬新浪微博登錄。由于新浪對于用戶賬號和密碼使用特殊加密,此程序使用base64對用戶名進行編碼和rsa2對password進行編碼,親測完成登錄。
代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
import?base64
import?rsa
import?binascii
import?requests
import?json
import?re
#使用base64對用戶名進行編碼
def?encode_username(username):
????return?base64.encodestring(bytes(username?encoding=“utf8“))[:-1]??
????
#使用rsa2對password進行編碼
def?encode_password(password?servertime?nonce?pubkey):
????rsaPubkey?=?int(pubkey?16)??
????RSAKey?=?rsa.PublicKey(rsaPubkey?65537)?#創建公鑰??
????codeStr?=?str(servertime)?+?‘\t‘?+?str(nonce)?+?‘\n‘?+?str(password)?#根據js拼接方式構造明文
????#pwd?=?rsa.encrypt(codeStr?RSAKey)??#使用rsa進行加密?
????pwd?=?rsa.encrypt(bytes(codeStrencoding=“utf8“)?RSAKey)
????return?binascii.b2a_hex(pwd)??#將加密信息轉換為16進制。
#讀取preinfo.php,獲取servertime?nonce?pubkey?rsakv四個參數值
def?get_prelogin_info():
????#//prelogin的Request?URL
????url?=?r‘http://l
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2857??2019-04-21?21:56??sinalogin\dataEncode.py
?????文件???????1038??2019-04-21?21:54??sinalogin\Logger.py
?????文件???????1098??2019-04-21?22:00??sinalogin\out\log_20190421.log
?????文件???????3930??2019-04-21?22:01??sinalogin\SinaSpider.py
?????文件???????2263??2019-04-21?21:56??sinalogin\__pycache__\dataEncode.cpython-37.pyc
?????文件???????1003??2019-04-21?21:56??sinalogin\__pycache__\Logger.cpython-37.pyc
?????目錄??????????0??2019-04-21?21:56??sinalogin\out
?????目錄??????????0??2019-04-21?21:56??sinalogin\__pycache__
?????目錄??????????0??2019-04-21?21:56??sinalogin
-----------?---------??----------?-----??----
????????????????12189????????????????????9
評論
共有 條評論