拒絕低效!Python教你爬蟲公眾號文章和鏈接

面對幾百篇的文章,這樣一個個選擇的話,是一件苦差事。

作為一個 Python開發工程師,當然不能這麼低效,我們用爬蟲把文章的標題和鏈接等信息提取出來。

我們需要通過抓包提取公眾號文章的請求的 URL,這次直接抓取 PC 端微信的公眾號文章列表信息,很簡單。

我以抓包工具 Charles 為例,勾選容許抓取電腦的請求,一般是默認就勾選的。

拒絕低效!Python教你爬蟲公眾號文章和鏈接

為了過濾掉其他無關請求,我們在左下方設置下我們要抓取的域名。

拒絕低效!Python教你爬蟲公眾號文章和鏈接

打開 PC 端微信,打開 「Python知識圈」公眾號文章列表後,Charles 就會抓取到大量的請求,找到我們需要的請求,返回的 JSON 信息裡包含了文章的標題、摘要、鏈接等信息,都在 commmsginfo 下面。

拒絕低效!Python教你爬蟲公眾號文章和鏈接

拒絕低效!Python教你爬蟲公眾號文章和鏈接

這些都是請求鏈接後的返回,請求鏈接 url 我們可以在 Overview 中查看。

拒絕低效!Python教你爬蟲公眾號文章和鏈接

通過抓包獲取了這麼多信息後,我們可以寫爬蟲爬取所有文章的信息並保存了。

公眾號歷史文章列表向上滑動,加載更多文章後發現鏈接中變化的只有 offset 這個參數,我們創建一個初始化函數,加入代理 IP,請求頭和信息,請求頭包含了 User-Agent、Cookie、Referer。

拒絕低效!Python教你爬蟲公眾號文章和鏈接

這些信息都在抓包工具可以看到。

拒絕低效!Python教你爬蟲公眾號文章和鏈接

通過抓包分析出來了請求鏈接,我們就可以用 requests 庫來請求了,用返回碼是否為 200 做一個判斷,200 的話說明返回信息正常,我們再構建一個函數 parse_data() 來解析提取我們需要的返回信息。

通過分析返回的 Json 數據,我們可以看到,我們需要的數據都在 appmsgext_info 下面。

拒絕低效!Python教你爬蟲公眾號文章和鏈接

我們用 json.loads 解析返回的 Json 信息,把我們需要的列保存在 csv 文件中,有標題、摘要、文章鏈接三列信息,其他信息也可以自己加。

這樣,爬取的結果就會以 csv 格式保存起來。

拒絕低效!Python教你爬蟲公眾號文章和鏈接

運行代碼時,可能會遇到 SSLError 的報錯,最快的解決辦法就是 base_url 前面的 https 去掉 s 再運行。

經常寫文章的人應該都知道,一般寫文字都會用 Markdown 的格式來寫文章,這樣的話,不管放在哪個平臺,文章的格式都不會變化。

在 Markdown 格式裡,用 [文章標題](文章url鏈接) 表示,所以我們保存信息時再加一列信息就行,標題和文章鏈接都獲取了,Markdown 格式的 url 也就簡單了。

爬取完成後,效果如下。

拒絕低效!Python教你爬蟲公眾號文章和鏈接

我們把 md鏈接這一列全部粘貼到 Markdown 格式的筆記裡就行了,大部分的筆記軟件都知道新建 Markdown 格式的文件的。

拒絕低效!Python教你爬蟲公眾號文章和鏈接

這樣,這些導航文章鏈接整理起來就是分類的事情了。

最後,小編想說:我是一名python開發工程師,

整理了一套最新的python系統學習教程,

想要這些資料的可以關注私信小編“01”即可(免費分享哦)希望能對你有所幫助


分享到:


相關文章: