做爰高潮a片〈毛片〉,尤物av天堂一区二区在线观看,一本久久A久久精品VR综合,添女人荫蒂全部过程av

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

python實現(xiàn)二維碼掃碼自動登錄淘寶

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 14:16:41
文檔

python實現(xiàn)二維碼掃碼自動登錄淘寶

python實現(xiàn)二維碼掃碼自動登錄淘寶:一個小項目自動登錄淘寶聯(lián)盟抓取數(shù)據(jù),由于之前在Github上看過類似用Python寫的代碼因此選擇用Python來寫,第一次用Python正式寫程序還是被其簡單所震撼,當然用的時候還是對其(2.7版)編碼、遷移環(huán)境等問題所困擾,還好后來都解決了。言歸正傳,抓取淘
推薦度:
導讀python實現(xiàn)二維碼掃碼自動登錄淘寶:一個小項目自動登錄淘寶聯(lián)盟抓取數(shù)據(jù),由于之前在Github上看過類似用Python寫的代碼因此選擇用Python來寫,第一次用Python正式寫程序還是被其簡單所震撼,當然用的時候還是對其(2.7版)編碼、遷移環(huán)境等問題所困擾,還好后來都解決了。言歸正傳,抓取淘
一個小項目自動登錄淘寶聯(lián)盟抓取數(shù)據(jù),由于之前在Github上看過類似用Python寫的代碼因此選擇用Python來寫,第一次用Python正式寫程序還是被其“簡單”所震撼,當然用的時候還是對其(2.7版)編碼、遷移環(huán)境等問題所困擾,還好后來都解決了。

言歸正傳,抓取淘寶聯(lián)盟的數(shù)據(jù)首先要解決的就是登錄的問題,之前一般會碰到驗證碼的困擾,現(xiàn)在支持二維碼掃碼登錄反而簡單了,以下是登錄的Python代碼,主要是獲取二維碼打印,然后不斷的檢查掃碼狀態(tài),如果過期了重新請求二維碼(主要看邏輯,由于有些通用方法做了封裝所以不保證能直接執(zhí)行)

def getQRCode(enableCmdQR):
 payload = {'_ksTS': str(time.time()), 'from': 'alimama'}
 qrCodeObj = utils.fetchAPI('https://qrlogin.taobao.com/qrcodelogin/generateQRCode4Login.do', payload,
 "json", None, True, True)
 
 print(qrCodeObj)
 utils.printQRCode('http:' + qrCodeObj['url'], enableCmdQR)
 lgToken = qrCodeObj['lgToken']
 return lgToken
 
 
def login(enableCmdQR=False):
 lgToken = getQRCode(enableCmdQR)
 code = 0
 successLoginURL = ""
 while code != 10006:
 payload = {'lgToken': lgToken,
 'defaulturl': 'http%3A%2F%2Flogin.taobao.com%2Fmember%2Ftaobaoke%2Flogin.htm%3Fis_login%3D1&_ksTS=' + str(
 time.time())}
 
 rObj = utils.fetchAPI('https://qrlogin.taobao.com/qrcodelogin/qrcodeLoginCheck.do', payload, "json", True,
 False)
 code = int(rObj['code'])
 if 10000 == code:
 # print("請掃描二維碼登錄")
 continue
 elif 10001 == code:
 print("已掃描二維碼,請在確認登錄")
 elif 10004 == code:
 print("已過期請重新掃描")
 login()
 elif 10006 == code:
 successLoginURL = rObj["url"]
 print("登錄成功,正在跳轉")
 else:
 print("未知錯誤,退出執(zhí)行")
 sys.exit(0)
 
 time.sleep(5)
 
 print "登錄成功跳轉:" + successLoginURL
 r = utils.fetchAPI(successLoginURL, None, "raw", True, False, True)
 utils.fetchAPI(r.headers['Location'], None, "raw", True, True, False)

解決登錄問題接下去就要解決保存狀態(tài)的問題,Python的Requests庫非常強大,如果簡單的話可以直接使用request.session來進行會話操作,但由于項目中的很多操作是異步的因此需要解決cookie的存儲和讀取,使用pickel進行對像的序列化和反序列化。其中保存cookie默認用增量的方式進行更新

def save_cookies(cookies, overWrite=False):
 try:
 currentCookie = requests.utils.dict_from_cookiejar(cookies)
 if len(currentCookie) < 1:
 return
 oldCookie = requests.utils.dict_from_cookiejar(load_cookies())
 with open(config.COOKIE_FILE, 'w') as f:
 if not overWrite:
 cookieDict = dict(oldCookie, **currentCookie)
 else:
 cookieDict = requests.utils.dict_from_cookiejar(cookies)
 pickle.dump(cookieDict, f)
 print 'Saved cookie'
 print cookieDict
 f.close()
 except:
 print 'Save cookies failed', sys.exc_info()[0]
 sys.exit(99)


def load_cookies():
 try:
 with open(config.COOKIE_FILE, 'r') as f:
 cookies = requests.utils.cookiejar_from_dict(pickle.load(f))
 f.close()
 except:
 cookies = []
 return cookies

封裝好之后,在requests.Session請求時加載cookie并保存cookie

s = requests.Session()
# 統(tǒng)一請求API
def fetchAPI(url, params=None, resultFormat="text", isNeedCookie=True, allowRedirects=True, saveCookie=False,
 method='GET'):
 try:
 cookies = load_cookies()
 if 'POST' == method:
 response = s.post(url, data=params, headers=config.Headers, cookies=cookies)
 else:
 response = s.get(url, params=params, headers=config.Headers, cookies=cookies,
 allow_redirects=allowRedirects)

 if "json" == resultFormat:
 result = response.json()
 elif "raw" == resultFormat:
 result = response
 else:
 result = response.text

 # if saveCookie:
 # print 'save cookie:' + str(response.cookies)
 save_cookies(response.cookies)

 return result

 except Exception, e:
 print e
 return False

這兩步做好之后基本后續(xù)的請求就直接使用統(tǒng)一的API請求方法即可,效果也非常不錯,運行效果截圖:

當然還有一個問題未解決:如何在session過期之后如何自動重新申請(不確定淘定是否支持),由于淘寶是用統(tǒng)一登錄而且是獨立的服務因此通過瀏覽器自動刷新或者請求過程中不斷去更新cookie都沒有獲得服務器方更新的票據(jù),不知道這一塊大家有沒有可以提供的思路。

更多python實現(xiàn)二維碼掃碼自動登錄淘寶相關文章請關注PHP中文網(wǎng)!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

python實現(xiàn)二維碼掃碼自動登錄淘寶

python實現(xiàn)二維碼掃碼自動登錄淘寶:一個小項目自動登錄淘寶聯(lián)盟抓取數(shù)據(jù),由于之前在Github上看過類似用Python寫的代碼因此選擇用Python來寫,第一次用Python正式寫程序還是被其簡單所震撼,當然用的時候還是對其(2.7版)編碼、遷移環(huán)境等問題所困擾,還好后來都解決了。言歸正傳,抓取淘
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 土默特左旗| 上思县| 遂川县| 简阳市| 新野县| 巩义市| 溆浦县| 磐石市| 碌曲县| 正安县| 佛学| 樟树市| 绥阳县| 洮南市| 商丘市| 当阳市| 潜江市| 醴陵市| 石首市| 茂名市| 清徐县| 汤原县| 都昌县| 吉水县| 嘉定区| 西青区| 甘洛县| 桃园县| 鹤山市| 三台县| 孟州市| 洪泽县| 榆中县| 灌阳县| 明光市| 鄂托克旗| 济阳县| 乌兰县| 宾阳县| 泰顺县| 芒康县|