Python 爬取全部QQ好友號碼
阿新 • • 發佈:2022-03-25
記錄一下爬取自己的全部QQ好友的QQ號碼的過程
首先通過在QQ郵箱頁面抓包發現了一個網址
把連線放到python中進行爬取
發現爬取的內容與瀏覽器看到的不同,於是我們新增標頭
看到成功返回了內容
但卻發現其型別雖然為json格式,但卻存在許多格式錯誤導致無法通過json模組進行轉化
雖說我們可以通過網上的json格式化工具進行轉化,但是由於我想使其步驟儘量由Python實現,所以我採取了較為笨拙一點的正則表示式進行提取
我們首先通過觀察成功格式化的json文字發現關鍵資訊主要存放在以下兩個分組中
-
sortbyupdatetime
存放著最近聯絡人以及全部的好友資訊好友資訊的格式如下
-
qqgroups
將上面資訊中的編號分組放置
於是我們開始完善程式碼,解析程式碼如下
response = requests.get(url, headers=headers).text friend_info = re.findall('sortbyupdatetime(.*?)qqgroups', response, re.S)[0] friend_info = friend_info.strip(" :,[]").split('],[') # 將編號跟QQ號儲存到字典中 dic = {} for i in friend_info: i = i.split(',') dic[i[0].strip('""')] = i[2].strip('@qq.com"') # 將分組中的編號轉化為列表形式 qqgroups = re.findall('qqgroups(.*?)groups', response)[0] qqgroups = qqgroups.strip(" :,[]")[1:-1].split('],[') # 根據編號提取QQ號 for i in qqgroups: find_numbers = re.findall(r'\[(.*?)\]', str(i))[0].split(',') for find_number in find_numbers: if find_number in dic: qqs.append(dic[find_number]) # 儲存到文字檔案中 with open('qq.txt', 'w', encoding='utf-8') as file: file.write('\n'.join(qqs))
成果展示