不要問(wèn)我,咋跪鍵盤(pán),沒(méi)人告訴我python程序媛這么厲害!還能監控
近期,小伙說(shuō)他女朋友可以實(shí)時(shí)監控了自己的微博一更新動(dòng)態(tài),到最后被現場(chǎng)抓了都是一臉懵逼;
于是他找上我,問(wèn)我他女朋友是如何得知自己微博一更新動(dòng)態(tài),想弄明白到底是怎么回事;
這必須得安排上啊,讓我們愉快地開(kāi)始吧
下面看具體操作方式:
相關(guān)工具
**Python版本:**3.6.4
相關(guān)模塊:
DecryptLogin模塊;
以及一些Python自帶的模塊。
一. 項目要求
實(shí)時(shí)監控某個(gè)微博用戶(hù)有沒(méi)有發(fā)新的微博。
二. 微博模擬登陸
調用我之前開(kāi)源的DecryptLogin庫就可以很方便地實(shí)現微博的模擬登陸了。
模塊地址:
https://github.com/CharlesPikachu/DecryptLogin
三. 微博監控
1. 確定待監控用戶(hù)
(1)指定用戶(hù)id進(jìn)行微博監控
這個(gè)很簡(jiǎn)單,在瀏覽器里登陸微博移動(dòng)端,然后點(diǎn)進(jìn)想要監控的用戶(hù)的微博主頁(yè),就可以找到該用戶(hù)的用戶(hù)id了,例如下圖所示:
(2)監控關(guān)注列表中的某用戶(hù)
簡(jiǎn)單抓包可以發(fā)現:
只要不斷請求(page每次加1)上圖中紅框框出的鏈接直到返回的數據為空就可以獲取登錄用戶(hù)的關(guān)注列表中的所有用戶(hù)信息了,具體代碼如下:
然后用戶(hù)自主選擇想要監控的微博用戶(hù):
用戶(hù)選擇完畢后,利用正則表達式獲取該微博用戶(hù)的用戶(hù)id:
2. 實(shí)現微博監控
步驟一:獲取被監控微博用戶(hù)發(fā)布的所有微博
經(jīng)抓包分析與實(shí)際測試,獲取被監控微博用戶(hù)發(fā)布的所有微博流程如下:
① 獲取第一個(gè)containerid
登錄狀態(tài)的session請求用戶(hù)主頁(yè)后通過(guò)正則表達式從session的cookies中提取。
② 獲取第二個(gè)containerid
利用第一個(gè)containerid、user_id請求:
https://m.weibo.cn/api/container/getIndex?uid={}&luicode=10000011&lfid=231093_-_selffollowed& type=uid&value={}&containerid={}即可獲取第二個(gè)containerid。
③ 獲取被監控微博用戶(hù)發(fā)布的所有微博數據
利用第二個(gè)containerid、user_id請求:
https://m.weibo.cn/api/container/getIndex?uid={}&luicode=10000011&lfid=231093_-_selffollowed&type=uid&value={}&containerid={}
即可獲取被監控微博用戶(hù)發(fā)布的所有微博數據。
步驟二:實(shí)時(shí)監控
不斷重復步驟一,獲取被監控微博用戶(hù)發(fā)布的所有微博,將獲取的數據與上一次獲取的被監控微博用戶(hù)發(fā)布的所有微博數據進(jìn)行對比,若有新的數據,則代表被監控微博用戶(hù)發(fā)布了新的微博。
具體代碼實(shí)現如下:
效果展示
運行方式:
效果演示:
小編寄語(yǔ):
python學(xué)的好,女票不愁找,下面展示了部分,希望也能幫助對編程感興趣,想要追趕python開(kāi)發(fā)熱點(diǎn)的朋友們。
部分視頻展示:
電子書(shū)系列:
視頻容易理解,電子書(shū)作為輔助,有時(shí)候看視頻不方便可以用電子書(shū)作為輔助
python人工智能系列:
獲取方式
點(diǎn)贊,收藏并轉發(fā)文章后點(diǎn)擊小編頭像,關(guān)注后私信回復:【11】 即可獲取,下方位置,舉手之勞,非常感謝。