資源簡介
也是自己學習python,網上模擬登陸的代碼很多都是py2.7版本,最新的py3+版本更改了函數名也摒棄了2.x版本的一些方法,現在根據修改,成功實現py3微博模擬登陸,并加了自己學習注釋,希望大家共同進步。里面更改自己的登錄名和密碼,即可直接運行
代碼片段和文件信息
#?-*-coding:utf-8-*-
#?請求
import?requests
#?html中?element?查找
from?bs4?import?BeautifulSoup
#?json格式?轉換
import?json
#?base64?加密
import?base64
#?利用quote
import?urllib.request
import?re
import?rsa
import?binascii
head?=?{‘Accept‘:?‘text/htmlapplication/xhtml+xmlapplication/xml;q=0.9image/webp*/*;q=0.8‘
????????‘Content-Type‘:?‘application/x-www-form-urlencoded‘
????????‘Accept-Language‘:?‘zh-CNzh;q=0.8‘
????????‘Accept-Encoding‘:?‘gzip?deflate?br‘
????????‘Cache-Control‘:?‘max-age=0‘
????????‘Connection‘:?‘keep-alive‘
????????‘Upgrade-Insecure-Requests‘:?‘1‘
????????‘Origin‘:?‘http://weibo.com‘
????????“Referer“:?“http://weibo.com/“
????????‘User-Agent‘:?‘Mozilla/5.0?(Windows?NT?10.0;?WOW64)?AppleWebKit/537.36?(KHTML?like?Gecko)?Chrome/58.0.3029.110?Safari/537.36?SE?2.X?metaSr?1.0‘
????????‘Host‘:?‘login.sina.com.cn‘}
#?其中servertime,nonce,rsakv是從prelogin.php請求的返回數據中獲取到的
#?su是經過加密之后的用戶名,一次base64加密
#?sp是經過加密之后的密碼,rsa加密方式加密過后的密碼
#?su和sp的分析是通過網上看別人的文章看到的,自己想還沒有那個能力
#?剩余的參數都是固定值,直接寫死就好
#?知道參數構成之后,對生成參數,提交
data?=?{
????????“servicetime“:?““
????????“nonce“:?““
????????“rsakv“:?““
????????“sp“:?““
????????“su“:?““
????????#?下方?東西固定,寫死
????????“entry“:?“weibo“
????????“from“:?““
????????“gateway“:?“1“
????????“savestate“:?“7“
????????“useticket“:?“1“
????????“qrcode_flag“:?“false“
????????“pagerefer“:?“https://login.sina.com.cn/crossdomain2.php?action=logout&r=https%3A%2F%2Fweibo.com%2Flogout.php%3Fbackurl%3D%252F“
????????“vsnf“:?“1“
????????“service“:?“miniblog“
????????“pwencode“:?“rsa2“
????????“sr“:?“1280*720“
????????“encoding“:?“UTF-8“
????????“prelt“:?“217“
????????“url“:?“https://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack“
????????“returntype“:?“meta“
}
#?xxx?用戶名及密碼加密,校驗信息
#?nonce:X73OB8
#?pwencode:rsa2as
#?rsakv:1330428213
#?sp:7dbeeb0db7be1355904339fd416e05963d05dcc874da8e8aa425ce6b559861e86047d0fa5ecb256ed44d8e320effd2027100c7b58b7bff2177045183b74a63f8eeebe8c8daa7f93211bfc0f95c02f3d3dd5c1a1512b7adbabfa521c47ad82cc3a9e6e8c4d2ddb3bd555f8ce752df2932c9d2adbf78eddfeefd3c09f64e47482d
if?__name__?==?‘__main__‘:
????email?=?“username@email.com“
????password?=?“password“
????pre_url?=?“https://login.sina.com.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=d3Nzenp5JTQweWVhaC5uZXQ%3D&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.19)&_=1534943717889“
????s?=?requests.session()
????res?=?s.get(pre_url)
????res?=?str(res.text.encode(‘utf-8‘)).split(‘(‘)[-1].split(‘)‘)[0
評論
共有 條評論