Python爬蟲爬取微信公眾號歷史文章全部鏈接

因?yàn)榕笥褑栁夷懿荒苷乙幌乱粋€(gè)微信公眾號的全部歷史文章的鏈接,我就幫他弄了一下,通過百度和谷歌發(fā)現(xiàn)現(xiàn)在大家爬微信公眾號的思路基本都是下面兩種:

  1. 通過搜狗搜索微信公眾號然后拿到鏈接
  2. 通過fiddler檢測手機(jī)微信拿到鏈接。

經(jīng)過考慮沙廉,首先放棄了搜狗蒲稳,因?yàn)槌醪娇戳艘幌滤压返墓娞査训降哪抢镏挥星笆恼碌逆溄印O旅嬲f一下我這次的思路婿屹。

思路

我在嘗試抓取手機(jī)微信上的公眾號的歷史鏈接時(shí),無意中發(fā)現(xiàn)推溃,使用電腦上的微信同樣可以抓取到鏈接昂利。不過這一點(diǎn)倒是沒有太大的影響。因?yàn)槲以嚵艘幌率謾C(jī)和電腦都是可以爬的铁坎,只不過電腦上要更方便一下蜂奸。

  1. 首先,打開fiddler硬萍,然后在電腦端微信上找到要爬取的微信公眾號扩所,然后左鍵點(diǎn)一下就會有一個(gè)查看所有歷史信息。點(diǎn)擊查看歷史信息之后我們就會在fiddler上看到一條這樣的GET請求:/mp/getmasssendmsg?__biz=MzA3NDk1NjI0OQ==&uin=MjgxMTU0NDM1&key=cdce7679908e443d6f21adcc7236aea6bfd78ef06cb0f784644d5a3d1a7d1ee97b52997a3fdfca401835b9cc962bfa98e2d8f8806cba94b89ccd72c0883df2baaf712b0818727d149cefb3f920257d27&devicetype=Windows+10&version=6203005d&lang=zh_CN&ascene=7&pass_ticket=PMllYHvaLNk2DRePx1zNYuCv71ocxw7m6lOhOnaFfnnDt35P7ybHP3ESUYFoYaDQ ,在這個(gè)前面加上https://mp.weixin.qq.com后在瀏覽器中打開整個(gè)鏈接就會發(fā)現(xiàn)打開了這個(gè)公眾號的歷史文章了朴乖。
    多用fiddler抓幾次這個(gè)鏈接以及換幾個(gè)公眾號后就會發(fā)現(xiàn)碌奉,整個(gè)鏈接里面biz應(yīng)該是微信公眾號的標(biāo)識符,uin應(yīng)該是微信號的標(biāo)識寒砖,key是騰訊的一個(gè)算法赐劣。在整個(gè)鏈接里面,如果是抓同一個(gè)微信公眾號的話哩都,那么只有key是有時(shí)效性的魁兼,其它的都是不變的。超過一定時(shí)間的話漠嵌,再用這個(gè)key打開鏈接就會發(fā)現(xiàn)不能用了咐汞,提示請用微信打開了!這里我本來以為如果用微信自帶的瀏覽器就不會有時(shí)效性問題了儒鹿, 所以最開始我的UA設(shè)置的微信的化撕,然后發(fā)現(xiàn)并沒有什么用...就又換回電腦的了...這里就很坑啊,不能死用一個(gè)key的约炎!不過還好只抓一個(gè)公眾號的話植阴,時(shí)間還是夠的蟹瘾,就是寫程序的時(shí)候就很頭疼了..每次失效了都要重新弄...

  2. 通過審查這個(gè)鏈接里面的元素,我們不難發(fā)現(xiàn)掠手,已經(jīng)可以看到文章的鏈接了憾朴,但是問題來了,這個(gè)初始鏈接里依然只有10條最近的文章喷鸽。這個(gè)時(shí)候众雷,我們必須往下滑動滾動條才能把剩下的文章全部的顯示出來。所以在寫程序的時(shí)候就需要通過selenium+phahtomJS來鏈接這個(gè)界面并且滑動滾動條做祝,知道滾動條滑到最下面為止了砾省。這樣我們再審查元素就可以看到獲得了全部的文章鏈接。 ** 注意混槐,文章的鏈接分別藏在幾種標(biāo)簽里面编兄,所以要把他們?nèi)空页鰜恚蝗粫z漏的纵隔! **然后把這些鏈接存起來就好了翻诉。

程序

大概說一下我的程序思路:
整個(gè)流程就是通過selenium+phantomJS鏈接上面那個(gè)鏈接炮姨,通過BeautifulSoup提取頁面捌刮,利用JS操作滾動條滾到底直到出現(xiàn)沒有更多消息為止,最后找到所有鏈接后輸出就行了(記得鏈接存在幾種類型的tag里面舒岸,一定要找全)绅作。由于朋友只需要這一個(gè)公眾號的鏈接,而且因?yàn)橥粋€(gè)公眾號的鏈接只有key在變蛾派,所以key就從bash獲取就行了俄认,其它的可以寫在程序里。我是不是太懶了........大概思路就是這樣洪乍,還有很多可以優(yōu)化的地方...

附上代碼(https://github.com/fst034356/crawler/tree/master/wechat)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末眯杏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子壳澳,更是在濱河造成了極大的恐慌岂贩,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巷波,死亡現(xiàn)場離奇詭異萎津,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)抹镊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門锉屈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人垮耳,你說我怎么就攤上這事颈渊∷焓颍” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵儡炼,是天一觀的道長妓湘。 經(jīng)常有香客問我,道長乌询,這世上最難降的妖魔是什么榜贴? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮妹田,結(jié)果婚禮上唬党,老公的妹妹穿的比我還像新娘。我一直安慰自己鬼佣,他們只是感情好驶拱,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晶衷,像睡著了一般蓝纲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上晌纫,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天税迷,我揣著相機(jī)與錄音,去河邊找鬼锹漱。 笑死箭养,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哥牍。 我是一名探鬼主播毕泌,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嗅辣!你這毒婦竟也來了撼泛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤澡谭,失蹤者是張志新(化名)和其女友劉穎愿题,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體译暂,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抠忘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了外永。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崎脉。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖伯顶,靈堂內(nèi)的尸體忽然破棺而出囚灼,到底是詐尸還是另有隱情骆膝,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布灶体,位于F島的核電站阅签,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蝎抽。R本人自食惡果不足惜政钟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望樟结。 院中可真熱鬧养交,春花似錦、人聲如沸瓢宦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驮履。三九已至鱼辙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間玫镐,已是汗流浹背倒戏。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留摘悴,地道東北人峭梳。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓舰绘,卻偏偏與公主長得像蹂喻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子捂寿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容