詳解爬取搜狐號自媒體的所有文章

現在有很多自媒體平臺 , 如頭條號、搜狐號、大魚號、百家號等 , 每個人都可以成為創作者發布自己的作品 。如果想把某個作者的文章都下下來 , 一篇一篇的下載會很麻煩 , 而用爬蟲則會很簡單 , 順便還能練練手 。這里就以抓取規則比較比較簡單的搜狐號來開到 。
工具
pycharm、Python3、PC
庫 os、 re、BeautifulSoup、requests、json、urllib.parse
思路
入口URL進入 --> 獲取文章地址 --> 獲取圖片地址 --> 下載文章與圖片
注:主線思路很簡單 , 但還是會遇到很多小問題
效果
開始
一、網站分析
1、先選定一個要爬取的自媒體賬號 , 比如隨便選的:
2、用fiddler或F12抓包 , 發現返回的數據包里面不包含連接 。這說明連接應該都放在在某個請求里面 , 而這個請求返回的是json格式 。
3、在請求列表里找 , 最終在這個里面看到了貓膩
用瀏覽器訪問下試試 , 好多URL和title , 就是這個了!
4、在看他的地址結構 , pageNumber應該是第幾頁 , xpt是每個自媒體賬號的唯一id , pageSize是一頁顯示多少條信息 。
5、點進一篇文章 , 發現文章內容在
標簽內 
6、分析完成后 , 可以正式敲代碼了 。
二、編碼
1、先對輸入的URL進行拆分 , 提取xpt
2、創建文件夾 , 存放爬取的資源
3、然后用pageNumber、xpt、pageSize拼接路徑 , 獲取保存URL的頁面;將返回的數據轉為json格式 , 解析地址;通過pageNumber自增 , 循環獲取所有頁面的地址 。
4、將信息保存到本地txt文件
5、遍歷獲取地址對應的文章內容和圖片


6、效果如下


優化
【詳解爬取搜狐號自媒體的所有文章】由于加了圖片下載 , 單線程會比較慢 , 因此可考慮優化成 多線程 , 效率剛剛滴 。

    推薦閱讀