微信客戶端公眾號(hào)爬蟲

微信公眾號(hào)文章的爬蟲可以通過多種方式,例如搜狗的接口颗胡,傳送門等網(wǎng)站毫深,但是有個(gè)問題,就是這些網(wǎng)站只能獲取文章的內(nèi)容毒姨,而不能獲取文章相應(yīng)的點(diǎn)贊數(shù)評(píng)論數(shù)哑蔫,以及閱讀量等信息,所以今天教一下大家通過微信客戶端進(jìn)行爬取這些信息。

我們用電腦微信客戶端登陸自己的微信闸迷,可以觀察到微信文章是不能直接在瀏覽器上訪問到詳細(xì)信息的嵌纲,所以我們爬取還是要通過抓包。本文抓取的主要思路是這樣的腥沽,通過抓包分析微信公眾號(hào)向服務(wù)器發(fā)送的各種請(qǐng)求以及各種參數(shù)之間的關(guān)系逮走,然后用python模擬客戶端發(fā)送請(qǐng)求,獲取相應(yīng)的數(shù)據(jù)今阳,下面展開詳細(xì)講解师溅。

首先將手機(jī)和電腦連接在同一個(gè)局域網(wǎng)內(nèi),然后用fiddler設(shè)置代理盾舌,通過手機(jī)訪問公眾號(hào)歷史信息墓臭,獲取請(qǐng)求數(shù)據(jù)。如圖矿筝,隨機(jī)點(diǎn)擊一個(gè)公眾號(hào)的歷史信息

圖片.png

這個(gè)URL比較長(zhǎng)起便,但是我們可以精簡(jiǎn)一下成這樣
https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz={biz}&scene=124&devicetype=iOS10.0.2&version=16050321&lang=zh_CN&nettype=WIFI&a8scene=3&fontScale=131&wx_header=1'.format(biz=self.biz)
其中biz相當(dāng)于公眾的身份證號(hào)棚贾,一個(gè)公眾號(hào)只要一個(gè)窖维,所以我們只要模擬請(qǐng)求該URL就可以了,但是里面有個(gè)key關(guān)鍵參數(shù)妙痹,這個(gè)key值怎么產(chǎn)生的不知道铸史,而且有時(shí)效性,每過20來分鐘就失效了怯伊,但是20多分對(duì)于抓取一個(gè)公眾號(hào)足以琳轿,于是模擬訪問該url,獲得第一次訪問歷史頁面的文章耿芹,一般是10篇崭篡,如圖是模仿請(qǐng)求然后用正則獲取文章url的代碼

圖片.png

輸出如圖

圖片.png

接著的思路是訪問每個(gè)詳細(xì)文章頁,獲得文章標(biāo)題吧秕,摘要琉闪,內(nèi)容,而且分析請(qǐng)求可知砸彬,要獲取文章的點(diǎn)贊閱讀颠毙,以及評(píng)論,必須要根據(jù)文章詳情頁的參數(shù)砂碉。這里先看文章點(diǎn)贊閱讀的請(qǐng)求

圖片.png

該請(qǐng)求是post請(qǐng)求蛀蜜,要獲得需要的數(shù)據(jù)有兩個(gè)關(guān)鍵點(diǎn),第一個(gè)是cookie里面的wip_sid2這個(gè)值增蹭,一定要帶上滴某,該值也是有時(shí)效性的,不過可以夸公眾號(hào)訪問,不像key只那么嚴(yán)格霎奢,另外一個(gè)關(guān)鍵點(diǎn)是該請(qǐng)求需要提交的data偏瓤,如圖

圖片.png

分析過data發(fā)現(xiàn)里面前面的兩個(gè)值都是在文章內(nèi)容頁面提取的,而且其他參數(shù)可以去掉椰憋,然后就可以模擬請(qǐng)求了厅克,如圖代碼


接下來是評(píng)論的抓取,評(píng)論的的返回都是json數(shù)據(jù)橙依,比較好解析证舟,先看請(qǐng)求

圖片.png

評(píng)論的url里面攜帶了多個(gè)參數(shù),有mid窗骑,sn女责,idx,第一個(gè)應(yīng)該是文章的id创译,sn應(yīng)該也是屬于標(biāo)記之類的抵知,idx是表示本文是該作者當(dāng)天第幾篇發(fā)表的文章,一般是1或者2软族,這些都可以再詳情頁獲取刷喜,下面是模擬請(qǐng)求的代碼

圖片.png

里面headers的偽裝于獲取點(diǎn)贊的headers一樣
有了根據(jù)文章url獲取所有數(shù)據(jù)的辦法只好,接下來看看怎么翻頁獲取文章的URL立砸,在手機(jī)中下拉刷新文章的時(shí)候掖疮,觸發(fā)的是該請(qǐng)求

圖片.png

如圖,最關(guān)鍵的還是wap_sid這個(gè)參數(shù)颗祝,攜帶上這個(gè)參數(shù)加上refer跟ua就能訪問下一頁了浊闪,下一頁返回的數(shù)據(jù)是json,直接解析就好了螺戳,headers也是比較簡(jiǎn)單的

圖片.png

first_url就是第一次訪問歷史信息的url
這樣就能翻頁抓取了搁宾,本人在代碼里面翻頁是利用文章的一個(gè)根據(jù)文章有遞減規(guī)律的id,因?yàn)樵诜搖rl里面的count參數(shù)不管用了倔幼,無論怎么訪問還是只返回10個(gè)一次盖腿。
總結(jié):在爬取的時(shí)候還是要手動(dòng)截取公眾號(hào)的key值跟wap_sid值,這兩個(gè)值在首次訪問歷史信息都可以從客戶端產(chǎn)生凤藏,雖然能爬奸忽,但還是不夠自動(dòng)化,感覺應(yīng)該有更好的辦法可以截取這兩個(gè)參數(shù)揖庄,貼一張這兩個(gè)參數(shù)的獲取位置

圖片.png

上兩張結(jié)果圖栗菜,
下面這個(gè)爬取的是python中文社區(qū)的文章

圖片.png

這是萌叔在杭州公眾號(hào):

圖片.png

最后值得得一提的是兩點(diǎn),要想批量化抓取抓取微信公眾號(hào)還是比較難的蹄梢,有兩個(gè)問題疙筹,第一個(gè)就是微信很容易封號(hào)富俄,尤其是那些剛剛注冊(cè)沒有銀行卡的(騰訊說:用微信哪有不付花錢?)而咆,而且微信號(hào)不像微博號(hào)那么好買啊霍比,分分鐘幾塊錢一個(gè),還有一個(gè)就是自動(dòng)化抓取暴备,題主之前想過用按鍵精靈進(jìn)行養(yǎng)號(hào)以及瀏覽要爬取的公眾號(hào)悠瞬,然后抓包軟件自動(dòng)捕獲請(qǐng)求頭寫進(jìn)本地文件,這個(gè)改幾行fiddle的配置文件就好了涯捻,然后爬蟲進(jìn)行監(jiān)聽浅妆,然后獲取相應(yīng)的參數(shù)自行爬取信息,想想現(xiàn)在還是挺難實(shí)現(xiàn)的障癌,那些利用微信爬蟲做成了熱搜榜的凌外,我也好想探究一下整個(gè)流程啊,有什么好的改進(jìn)的建議涛浙,各位小伙伴踴躍提翱导;
第二點(diǎn)是這個(gè)爬蟲當(dāng)時(shí)讓樓主獲得了一個(gè)爬蟲工程師的面試機(jī)會(huì)轿亮,樓主是去年畢業(yè)今年才轉(zhuǎn)行的疮薇,大學(xué)讀的還是文科,雖然最后還是沒進(jìn)去這間公司哀托,好遺憾惦辛。劳秋。仓手。要是有想轉(zhuǎn)行做爬蟲工程師的小伙伴可以考慮一下如何進(jìn)行批量化抓取。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末玻淑,一起剝皮案震驚了整個(gè)濱河市嗽冒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌补履,老刑警劉巖添坊,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異箫锤,居然都是意外死亡贬蛙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門谚攒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阳准,“玉大人,你說我怎么就攤上這事馏臭∫坝” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)绕沈。 經(jīng)常有香客問我锐想,道長(zhǎng),這世上最難降的妖魔是什么乍狐? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任赠摇,我火速辦了婚禮,結(jié)果婚禮上浅蚪,老公的妹妹穿的比我還像新娘蝉稳。我一直安慰自己,他們只是感情好掘鄙,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布耘戚。 她就那樣靜靜地躺著,像睡著了一般操漠。 火紅的嫁衣襯著肌膚如雪收津。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天浊伙,我揣著相機(jī)與錄音撞秋,去河邊找鬼。 笑死嚣鄙,一個(gè)胖子當(dāng)著我的面吹牛吻贿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哑子,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼舅列,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了卧蜓?” 一聲冷哼從身側(cè)響起帐要,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎弥奸,沒想到半個(gè)月后榨惠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盛霎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年赠橙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愤炸。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡期揪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出摇幻,到底是詐尸還是另有隱情横侦,我是刑警寧澤挥萌,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站枉侧,受9級(jí)特大地震影響引瀑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜榨馁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一憨栽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧翼虫,春花似錦屑柔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至招拙,卻和暖如春唧瘾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背别凤。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工饰序, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人规哪。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓求豫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親诉稍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蝠嘉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,498評(píng)論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)均唉,斷路器是晨,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • 很多的微信公眾號(hào)都提供了質(zhì)量比較高的文章閱讀,對(duì)于自己喜歡的微信公眾號(hào)舔箭,所以想做個(gè)微信公眾號(hào)爬蟲,爬取相關(guān)公眾號(hào)的...
    Evtion閱讀 11,980評(píng)論 8 23
  • 今天是7月7日镜会,007的生日,因?yàn)閼c祝這個(gè)活動(dòng)终抽,我認(rèn)識(shí)了同班同學(xué)吳先梅戳表。加入007的12班已經(jīng)兩個(gè)月了桶至,我和007...
    louise楊琴閱讀 376評(píng)論 8 6
  • 不知道每個(gè)人是否會(huì)有這樣的體驗(yàn)镣屹?在空閑的暑假總會(huì)溫習(xí)以前看過的電視劇、電影以及書籍价涝。山下智久說“關(guān)于夏天的回憶女蜈,就...
    mikasang閱讀 1,316評(píng)論 1 2