0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用Python實(shí)現(xiàn)實(shí)時(shí)監(jiān)控別人微博動(dòng)態(tài)

馬哥Linux運(yùn)維 ? 來源:未知 ? 作者:易水寒 ? 2018-10-03 12:32 ? 次閱讀

前幾個(gè)星期在寫一個(gè)微博監(jiān)控系統(tǒng) 可謂是一波三折啊 獲取到微博后因?yàn)橐恍┳址幋a問題 導(dǎo)致心態(tài)爆炸開發(fā)中斷 但是就在昨天發(fā)現(xiàn)了另外一個(gè)微博的接口

一個(gè)手機(jī)微博的接口https://m.weibo.cn/ 經(jīng)過一番測試后認(rèn)為這個(gè)接口滿足我的要求 就繼續(xù)完成未完成的使命吧

0x01 分析:

這個(gè)接口直接訪問的話會(huì)有一個(gè)302跳轉(zhuǎn)到一個(gè)登陸界面

也就是說這里需要先模擬登陸一下才可以訪問到微博抓個(gè)包分析了一下

發(fā)現(xiàn)只要用戶名和密碼正確既返回200且json部分的retcode會(huì)返回20000000

少了驗(yàn)證碼這一大坑 那模擬登陸就相當(dāng)簡單啦

登陸完后訪問用戶主頁 例如:https://m.weibo.cn/u/3023940914可以在審查元素的Network模塊看到 這里用了兩個(gè)xhr來加載用戶信息及微博信息

分別是

https://m.weibo.cn/api/container/getIndex?type=uid&value=3023940914&containerid=1005053023940914https://m.weibo.cn/api/container/getIndex?type=uid&value=3023940914&containerid=1076033023940914經(jīng)過測試這個(gè)接口直接加上type和value參數(shù)訪問 就相當(dāng)于第一個(gè)接口 不必加上containerid參數(shù)而第二個(gè)接口的containerid參數(shù)則是通過第一個(gè)接口獲取的

獲取到第二個(gè)containerid參數(shù)訪問第二個(gè)接口就可以獲取到這個(gè)uid發(fā)布的微博了

返回的是json格式的數(shù)據(jù) 用戶的微博信息都在cards列表里每條數(shù)據(jù)的mblog數(shù)組里面 包括微博正文、圖片、來源與時(shí)間等

其中card_type標(biāo)識的是微博類型 例如:文字微博 圖片微博 視頻微博 轉(zhuǎn)發(fā)等 經(jīng)過測試文字微博和圖片微博的card_type標(biāo)識都一樣為9

這里初步只開發(fā)監(jiān)控文字和圖片微博的功能其實(shí)就是懶

0x02 開發(fā)

首先需要模擬登陸 后續(xù)的操作都需要基于登陸的格調(diào)來進(jìn)行 也是需要在同個(gè)會(huì)話進(jìn)行 可以使用requests.session()方法來完成代碼片段:

登陸完成后就可以拼接用戶id訪問前面說的第一個(gè)接口了訪問完后再拼接containerid參數(shù)獲取微博信息的json數(shù)據(jù)代碼片段:

這里把所有獲取到的微博的id存起來 后面繼續(xù)訪問是發(fā)現(xiàn)有新的微博id不在這個(gè)列表里就證明是新發(fā)布的微博代碼片段:

將這些方法封裝成了一個(gè)類 完整代碼如下

寫了個(gè)一發(fā)現(xiàn)有新微博就發(fā)郵件提醒的功能 完整代碼見Github地址 https://github.com/naiquann/WBMonitor

0x03 測試

運(yùn)行代碼

填寫完相關(guān)的登陸信息及要監(jiān)控的用戶的id后

這里寫了一個(gè)心跳包 每三秒訪問一次看看有沒有新微博發(fā)布

測試的時(shí)候這樣比較方便 要是拿來用的話可以酌情增加間隔時(shí)間

當(dāng)有微博發(fā)布的時(shí)候

大功告成啦 監(jiān)控小姐姐的微博去嘍~

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 監(jiān)控系統(tǒng)

    關(guān)注

    21

    文章

    3822

    瀏覽量

    173236
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4701

    瀏覽量

    68126
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4760

    瀏覽量

    84311

原文標(biāo)題:Python黑科技:利用Python實(shí)現(xiàn)微博監(jiān)控小姐姐動(dòng)態(tài)

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    樹莓派上使用OpenCV和Python實(shí)現(xiàn)實(shí)時(shí)人臉檢測

    理論知識,因此初學(xué)者也能輕松跟著步驟實(shí)現(xiàn)。 項(xiàng)目所需設(shè)備 硬件: 樹莓派 3 Model B; 樹莓派攝像頭模塊(PiCam)。 語言和庫: OpenCV Python 3 步驟 本文主要講述如何使用 PiCam 實(shí)現(xiàn)實(shí)時(shí)人臉識
    的頭像 發(fā)表于 03-06 09:00 ?5.1w次閱讀

    LED顯示屏動(dòng)態(tài)顯示和遠(yuǎn)程監(jiān)控實(shí)現(xiàn)

    由于普通LED點(diǎn)陣顯示屏動(dòng)態(tài)顯示通常采用硬件掃描驅(qū)動(dòng),這在一些需要特殊顯示的場合顯得不夠靈活。文中提出了一種利用PC機(jī)和單片機(jī)的通訊來實(shí)現(xiàn)顯示屏靈活的動(dòng)態(tài)顯示和遠(yuǎn)程
    發(fā)表于 03-07 14:35

    LAbVIEW實(shí)現(xiàn)實(shí)時(shí)文字對話交流

    有木有人做過使用LAbVIEW實(shí)現(xiàn)實(shí)時(shí)文字對話交流的,類似于QQ?求指導(dǎo)!
    發(fā)表于 04-16 18:16

    LabVIEW數(shù)據(jù)如何利用動(dòng)態(tài)鏈接庫實(shí)時(shí)地傳遞給遠(yuǎn)程的計(jì)算機(jī)?

    LabVIEW實(shí)驗(yàn)后的數(shù)據(jù)如何利用動(dòng)態(tài)鏈接庫實(shí)時(shí)地傳遞給遠(yuǎn)程的計(jì)算機(jī)?最近在做一個(gè)項(xiàng)目,用LabVIEW采集并處理后的數(shù)據(jù)需要實(shí)時(shí)地傳遞給外地的實(shí)驗(yàn)室,對方繼續(xù)
    發(fā)表于 04-08 20:05

    labview中怎么樣實(shí)現(xiàn)實(shí)時(shí)采集聲音信號

    labview中怎么樣實(shí)現(xiàn)實(shí)時(shí)采集聲音信號,并對聲音信號進(jìn)行FFT的頻譜分析?如圖K是進(jìn)行離散傅里葉變換后取的從1到512,SK是K對應(yīng)的幅值。如何實(shí)現(xiàn)這個(gè)公式啊
    發(fā)表于 04-28 14:42

    【DNA Kit申請】利用手機(jī)對大棚溫濕度的實(shí)時(shí)監(jiān)控

    申請理由:利用手機(jī)與大棚的溫濕度的實(shí)時(shí)監(jiān)控,利用wifi模塊,實(shí)現(xiàn)大棚的物聯(lián)網(wǎng)技術(shù),讓農(nóng)業(yè)更加智能化。項(xiàng)目描述:
    發(fā)表于 09-23 11:46

    用Labview實(shí)現(xiàn)對設(shè)備的實(shí)時(shí)監(jiān)測和遠(yuǎn)程監(jiān)控的問題?

    純小白一個(gè),現(xiàn)在要給一個(gè)設(shè)備做一個(gè)實(shí)時(shí)監(jiān)測和遠(yuǎn)程監(jiān)控的上位機(jī),主要是現(xiàn)場實(shí)時(shí)的采集傳感器的信號,然后在軟件上顯示,然后還要讓別的計(jì)算機(jī)可以遠(yuǎn)程的監(jiān)測數(shù)據(jù)和控制機(jī)器,想問一下大神們,實(shí)時(shí)
    發(fā)表于 12-20 21:46

    請問樹莓派官方的攝像頭能進(jìn)行實(shí)時(shí)監(jiān)控嗎?

    請問樹莓派官方的攝像頭不能進(jìn)行實(shí)時(shí)監(jiān)控嗎!是不是實(shí)現(xiàn)實(shí)時(shí)監(jiān)控只能用USB攝像頭??!
    發(fā)表于 11-11 05:55

    Python如何實(shí)現(xiàn)模糊動(dòng)態(tài)聚類

    利用Python實(shí)現(xiàn)模糊動(dòng)態(tài)聚類
    發(fā)表于 06-02 17:38

    光線追蹤如何實(shí)現(xiàn)實(shí)時(shí)三維圖形?

    什么是光線追蹤?光線追蹤如何實(shí)現(xiàn)實(shí)時(shí)三維圖形?
    發(fā)表于 02-26 07:03

    如何利用Python實(shí)現(xiàn)Arduino UNO的串口通信呢

    利用Python實(shí)現(xiàn)串口通信的原理是什么?如何利用Python實(shí)現(xiàn)Arduino UNO的串口
    發(fā)表于 12-21 06:32

    基于SVG的實(shí)時(shí)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    基于SVG的實(shí)時(shí)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) SVG克服了現(xiàn)有的基于象素的Web上的圖形的缺點(diǎn)并且很好的融合了傳統(tǒng)Wab 的標(biāo)準(zhǔn),同時(shí)彌補(bǔ)了Web。圖形在動(dòng)態(tài)性和交互式能力方面的
    發(fā)表于 02-22 17:20 ?32次下載

    采用Protothread實(shí)現(xiàn)實(shí)時(shí)多任務(wù)系統(tǒng)

    采用Protothread實(shí)現(xiàn)實(shí)時(shí)多任務(wù)系統(tǒng) 在許多系統(tǒng)資源非常緊張的單片機(jī)應(yīng)用中,使用實(shí)時(shí)操作系統(tǒng)進(jìn)行任務(wù)調(diào)度來實(shí)現(xiàn)實(shí)時(shí)多任務(wù)系統(tǒng)時(shí),由操作系統(tǒng)帶來
    發(fā)表于 03-29 15:10 ?1424次閱讀
    采用Protothread<b class='flag-5'>實(shí)現(xiàn)實(shí)時(shí)</b>多任務(wù)系統(tǒng)

    基于python的ngxtop的安裝、監(jiān)控nginx與用法解析

    ngxtop是用python開發(fā)的一款監(jiān)控nginx訪問日志的工具, 它可以實(shí)時(shí)動(dòng)態(tài)地查看訪問最多的請求。
    的頭像 發(fā)表于 02-01 11:44 ?5037次閱讀
    基于<b class='flag-5'>python</b>的ngxtop的安裝、<b class='flag-5'>監(jiān)控</b>nginx與用法解析

    通過利用CCD傳感技術(shù)實(shí)現(xiàn)物體的動(dòng)態(tài)實(shí)時(shí)測量

    目前,對物體的重量進(jìn)行測量主要依據(jù)兩種基本原理。一是利用力學(xué)中的杠桿平衡原理,二是利用各種傳感器將物體的重量信息轉(zhuǎn)化成電信號,再對此電信號進(jìn)行分析處理提取該物體的重量信息。前者適用范圍廣,量程大,是一種經(jīng)濟(jì)的方法,但測量精度有限且需人工完成,因此,這種方法無法
    的頭像 發(fā)表于 04-02 09:21 ?3535次閱讀
    通過<b class='flag-5'>利用</b>CCD傳感技術(shù)<b class='flag-5'>實(shí)現(xiàn)</b>物體的<b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>實(shí)時(shí)</b>測量