<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答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實現二維碼掃碼自動登錄淘寶

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

        python實現二維碼掃碼自動登錄淘寶

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

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

        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("未知錯誤,退出執行")
         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)

        解決登錄問題接下去就要解決保存狀態的問題,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()
        # 統一請求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

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

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

        更多python實現二維碼掃碼自動登錄淘寶相關文章請關注PHP中文網!

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

        文檔

        python實現二維碼掃碼自動登錄淘寶

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

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费看一级一级人妻片| 国内精品久久久久影院亚洲| 日本一区二区在线免费观看| 免费无码又爽又刺激毛片| 亚洲欧美日韩中文无线码 | 亚洲日韩AV一区二区三区四区| av无码国产在线看免费网站| 国产成人自产拍免费视频| 在线观看免费播放av片| 亚洲综合AV在线在线播放| 99精品视频免费| 亚洲黄色在线观看视频| 免费精品国偷自产在线在线| 亚洲日本成本人观看| 四虎影视永久免费观看地址| free哆拍拍免费永久视频| 亚洲AV无码久久精品成人| 日韩精品免费一级视频| 亚洲中文字幕一二三四区| 亚洲 小说区 图片区 都市| 亚洲精品动漫在线| 成全视频免费高清| 香蕉国产在线观看免费| 久久亚洲精品无码| 大学生一级毛片免费看| 久久91亚洲精品中文字幕| 120秒男女动态视频免费| 久久精品国产亚洲沈樵| 国产h视频在线观看网站免费| 亚洲校园春色另类激情| 亚洲成人高清在线| 久久久久免费精品国产小说| 亚洲成年网站在线观看| 亚洲精品tv久久久久| 午夜老司机永久免费看片| 亚洲中文字幕一区精品自拍| 国产成人亚洲综合无码| 黄在线观看www免费看| 深夜a级毛片免费视频| 综合自拍亚洲综合图不卡区| 四虎www免费人成|