亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

利用搜狗陌陌自制一個(gè)簡(jiǎn)易微信公眾號爬蟲(chóng)接口

優(yōu)采云 發(fā)布時(shí)間: 2020-08-18 11:12

  利用搜狗陌陌自制一個(gè)簡(jiǎn)易微信公眾號爬蟲(chóng)插口

  微信公眾號現已成為主流的一對多媒體行為活動(dòng),也是現今互聯(lián)網(wǎng)內容生產(chǎn)不可忽略的一股力量。

  在此基礎上,微信公眾號爬蟲(chóng)顯得太有價(jià)值,對內容生產(chǎn)型公眾號進(jìn)行數據挖掘可以得到好多有意思、有價(jià)值的信息。就我所知,可用于微信公眾號爬蟲(chóng)的方法主要有以下幾種:web陌陌,手機客戶(hù)端抓包,搜狗陌陌入口,appium自動(dòng)化測試,Xposed框架等。

  手機客戶(hù)端抓包,利用fiddler或charles等抓包工具,算是一個(gè)比較主流(我自己覺(jué)得的orz),效率較高的方式,可以快速的抓取微信公眾號信息和歷史消息,此方式也有隱憂(yōu):cookies失效快,半天差不多的時(shí)間吧,有針對性的去抓取某幾個(gè)公眾號的歷史消息也是可以的。要想通過(guò)模擬登錄陌陌手動(dòng)獲得cookies,好像很難的,小弟淺薄,無(wú)法實(shí)現,貌似陌陌登錄是tcp協(xié)議?

  appium自動(dòng)化和Xposed框架我了解不多。appium類(lèi)似于selenium,在移動(dòng)端做自動(dòng)化測試的,模擬點(diǎn)擊即可。Xposed框架就有很多可以搞的了,Xposed可以在不更改apk的情況下做到一些額外的功能,爬蟲(chóng)自然是可以的,除此之外可做到以手動(dòng)搶紅包,自動(dòng)回復機器人,修改陌陌步數等等騷操作。

  寫(xiě)爬蟲(chóng)也有一段時(shí)間了,個(gè)人覺(jué)得實(shí)現爬蟲(chóng)不僅反反爬,爬蟲(chóng)效率外,還有一個(gè)很難實(shí)現的地方就是爬蟲(chóng)的穩定性,健壯性,需要考慮到好多異常情況,以及合理有效的異常處理,在這一點(diǎn)上,我認為我還須要向各大爬蟲(chóng)大鱷學(xué)習。(感覺(jué)自己瞎扯了很多,還沒(méi)有開(kāi)始我的正文(orz),感覺(jué)嫌我啰嗦的大鱷請別生氣。)

  利用搜狗陌陌寫(xiě)一個(gè)爬蟲(chóng)插口,代碼太狹小,只有兩百行不到的代碼。(這里我還得吐槽一下,python寫(xiě)多了,總有一種自己太叼,編程很簡(jiǎn)單的錯覺(jué),幾行代碼能夠實(shí)現很厲害的功能,這時(shí)候須要去寫(xiě)寫(xiě)CPP冷靜一下,讓自己曉得哪些是真正的編程。)

  以下記錄下我寫(xiě)這個(gè)爬蟲(chóng)插口腳本的過(guò)程:

  1. 頁(yè)面懇求剖析(以公眾號搜索為例):

  可以看見(jiàn)第一個(gè)http請求包就是我們想要的結果,查看其query string,如下:

  看起來(lái)很簡(jiǎn)單的不是,我們得到以下幾個(gè)信息:

  2. 模擬頁(yè)面懇求:

  我們直接用 url, 請求參數params, 還有谷歌瀏覽器的 user-agent 請求,發(fā)現可以成功的獲取到我們想要頁(yè)面的源碼,接下來(lái)我們獲取搜索結果下的第一個(gè)公眾號即可(這意味著(zhù)須要確切的給定公眾號名稱(chēng),太過(guò)模糊有可能獲取到與其類(lèi)似的公眾號結果)。

  3. 分析頁(yè)面:

  先確定爬取思路,第一步獲取微信公眾號鏈接,再通過(guò)該微信公眾號鏈接獲取其近來(lái)十條推送的相關(guān)信息,包括標題,日期,作者,內容摘要,內容鏈接(事實(shí)上,我們發(fā)覺(jué)有了陌陌推送鏈接以后才能太輕松的獲取其推送主體內容,但不包括點(diǎn)贊數和閱讀數,這幾個(gè)數據只能在陌陌手機端能夠查看,如果有機會(huì )的話(huà),下次記錄下自己手機陌陌抓包爬蟲(chóng)的過(guò)程)。

  于是第一步我們獲取公眾號鏈接:

  這里我們直接使用正則表達式提取即可(這么簡(jiǎn)單的就不用xpath,bs4了,依賴(lài)標準庫和第三方庫還是有所不同的。)

 ?。ū副凰《伦×薿rz,換一張。)

  第二步按照微信公眾號鏈接獲取近來(lái)十條推送信息:

 ?。ㄎ抑粚?xiě)了一篇orz,以后多加油。)

  ctlr U 查看網(wǎng)頁(yè)源碼,發(fā)現原創(chuàng )信息都置于一個(gè)js變量上面。

  好辦,繼續正則提取,將json格式的字符串轉換成python上面的字典,有兩種辦法,第一種是用 json.loads 方法, 第二種是用外置的 eval方式,這兩種方式有些區別,比如說(shuō)單冒號和雙冒號, json格式中使用的是雙引號, python字典通常是單冒號。

  OK,獲得原創(chuàng )推送信息數據了,但這上面有很多我們用不到的信息,將其剔除一下,值得一提的是,datetime的值是一個(gè)timestamp,我們須要將其轉化為直觀(guān)的時(shí)間抒發(fā)。

  到此,關(guān)于微信公眾號的爬蟲(chóng)差不都就解決了,接下來(lái)須要將其封裝為類(lèi)。主要部份代碼如下。

  另外,關(guān)于關(guān)鍵詞搜索文章的爬蟲(chóng)插口我也一并寫(xiě)了,AccountAPI,ArticleAPI,其父類(lèi)是一AP類(lèi),API類(lèi)有query_url, params, headers, _get_response, _get_datetime等變量和技巧,供于A(yíng)ccountAPI,ArticleAPI共用。

  代碼放到

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久