python模擬登錄練習(三)

經(jīng)歷過模擬登錄微博之后,今天試了一下爬網(wǎng)頁版的微信,感覺比微博簡單多了。

import requests
import time
import re
from PIL import Image


tip = 1
session = requests.session()
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
}
def getuuid():
    global uuid
    url = 'https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=\
    https%3A%2F%2Fwx.qq.com%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_CN&_='\
    +str(int(time.time()))
    data = session.get(url,headers=headers)
    #print(data.text)

    #獲得code和uuid的值
    q = r'window.QRLogin.code = (\d+); window.QRLogin.uuid = "(\S+?)"'
    p = re.search(q,data.text)
    code = p.group(1)
    uuid = p.group(2)
    #print(code,uuid)

    if code == '200':
        return True
    else:
        return False

def showImage():
    url = 'https://login.weixin.qq.com/qrcode/%s'% uuid

    #保存二維碼圖片
    with open('二維碼.jpg','wb') as f:
        f.write(session.get(url).content)

    im = Image.open('二維碼.jpg')
    im.show()
    im.close()

    print('請掃描二維碼')

def Islogin():
    global tip
    url = 'https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login?tip=%s&uuid=%s&_=%s'% (tip,uuid,int(time.time()))
    data = session.get(url)
    q = r'window.code=(\d+);'
    code = re.findall(q,data.text)[0]

    if code == '201':
        print('掃描成功,請點擊確認')
        tip = 0
    elif code == '200':
        print('正在登錄~~~')
        print(data.text)
    else:
        print('登錄失敗')
        print(code)
    return code

def mian():
    getuuid()
    showImage()
    while Islogin() != '200':
        pass
if __name__=='__main__':
    print('開始')
    mian()

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容