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