亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python網站登錄并簽到問題

瀏覽:93日期:2022-07-03 16:39:44

問題描述

問題:python在登錄成功后,簽到時提示沒有登錄,也就是缺少cookie

我通過Fidder抓包發現和手動登錄成功相比,Python發出去的包缺少cookie下面是代碼,但是我查到用opener方式,python會保存cookie進行后繼的訪問

import urllibfrom http import cookiejarimport gzipdef getOpener(head): cookie = cookiejar.CookieJar() pre = urllib.request.HTTPCookieProcessor(cookie) opener = urllib.request.build_opener(pre) header = [] for key, value in head.items():elem = (key, value)header.append(elem) opener.addheaders = header return opener, cookie#偽裝瀏覽器的頭部header = { ’Connection’: ’keep-alive’, ’Accept-Language’: ’zh-CN,zh;q=0.8’, ’Accept’: ’application/json, text/javascript, */*; q=0.01’, ’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36’, ’Accept-Encoding’: ’gzip, deflate, br’, ’Host’:’account.oneplus.cn’, ’X-Requested-With’:’XMLHttpRequest’, ’Origin’: ’http://account.oneplus.cn’,}url = ’http://account.oneplus.cn/onepluslogin’opener, cookie = getOpener(header)def ungzip(data): try:# 嘗試解壓print(’正在解壓.....’)data = gzip.decompress(data)print(’解壓完畢!’) except:print(’未經壓縮, 無需解壓’) return data## email = r’***********’password = ’****’postDict = { ’loginName’: email, ’passWord’: password, ’source’: ’2’, ’remember’: ’0’, ’channel’: ’2’, ’verifyCode’: ’’ }postData = urllib.parse.urlencode(postDict).encode()op = opener.open(url, postData)data = op.read()data = ungzip(data)print(data)#--------簽到--------------register_url = ’http://www.oneplusbbs.com/plugin.php?id=dsu_paulsign:sign&operation=qiandao&infloat=1&inajax=1’re_op = opener.open(register_url)data = op.read()data = ungzip(data)print(data)

問題解答

回答1:

缺少cookie原因是這樣的

發了login請求后http://account.oneplus.cn/one...返回數據:是這樣的{u’defaultData’: None, u’errCode’: u’11025’, u’ret’: u’1’, u’data’: {u’jumpUrl’: None, u’isCartMerge’: u’false’, u’bbscookie’: u’http://www.oneplusbbs.com/set...’, u’times’: u’0’}, u’page’: None, u’errMsg’: None}樓主沒有重新發setsocookie請求,bbscookie

還有簽到失敗的原因是,簽到是post請求,樓主用get了

以下是我實踐后的代碼,僅供參考

import reimport requestsheader = { ’Connection’: ’keep-alive’, ’Accept-Language’: ’zh-CN,zh;q=0.8’, ’Accept’: ’application/json, text/javascript, */*; q=0.01’, ’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36’, ’Accept-Encoding’: ’gzip, deflate, br’, ’Host’:’account.oneplus.cn’, ’X-Requested-With’:’XMLHttpRequest’, ’Origin’: ’http://account.oneplus.cn’,}url = ’http://account.oneplus.cn/onepluslogin’email = ’郵箱’password = ’密碼’postDict = { ’loginName’: email, ’passWord’: password, ’source’: ’2’, ’remember’: ’0’, ’channel’: ’2’, ’verifyCode’: ’’ }session = requests.Session()r = session.post(url, data=postDict)data = r.json()print(data)r = session.get(data[’data’][’bbscookie’])sign_url = ’http://www.oneplusbbs.com/plugin.php?id=dsu_paulsign:sign’r = session.get(sign_url)m = re.search(’name='formhash' value='([^']+)'’, r.text)formhash = m.group(1)print(formhash)qiandao_url = ’http://www.oneplusbbs.com/plugin.php?id=dsu_paulsign:sign&operation=qiandao&infloat=1&inajax=1’form = {’formhash’: formhash,’qdxq’:’fd’,’qdmode’:1,’todaysay’:’helloworld’}r = session.post(qiandao_url, data=form)print(r.text)回答2:

你使用 requests 模塊試試,這個 API 很方便。requests

回答3:

account.oneplus.cn和www.oneplus.cn,應該是跨域了

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 久久中文字幕一区二区三区 | 欧美日韩国产成人精品 | 最刺激黄a大片免费观看 | 高清影院在线欧美人色 | 亚洲精品乱码国产精品乱码 | 欧美日本在线播放 | 成人免费看黄页网址大全 | 亚洲手机在线 | 国产精品99久久久 | 亚洲视频在线免费播放 | 成人99国产精品 | 亚洲成a人片在线观看中文动漫 | 免费视频不卡一区二区三区 | 91尤物国产尤物福利在线 | 在线观看一区二区三区视频 | 久久香蕉精品视频 | 亚洲视频一区网站 | 亚洲高清网站 | 日本高清在线不卡 | 国产亚洲视频在线 | 久久精品图片 | 无圣光私拍一区二区三区 | 外国一级黄色 | 91短视频在线观看免费最新 | 免费一级e一片在线播放 | 在线视频毛片 | 国产国语在线播放视频 | 久久精品天天爽夜夜爽 | 天天摸夜夜添久久精品麻豆 | 国产欧美久久一区二区 | 久久黄色视屏 | 中国一级毛片国产高清 | 特级毛片免费 | 色xxxxx | 亚洲精品午夜国产va久久成人 | 国内在线观看精品免费视频 | 国产精品揄拍100视频最近 | 韩国一级毛片大全女教师 | 国产三级福利 | 亚洲精品国产第一区二区尤物 | 欧美大片a一级毛片视频 |