使用Python爬蟲爬取小紅書完完整整的全過程
前言
本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯系我們以作處理。
以下文章來源於Python進擊者 ,作者kuls
Python爬蟲、數據分析、網站開發等案例教程視頻免費在線觀看
https://space.bilibili.com/523606542
小紅書
首先,我們打開之前大傢配置好的charles
我們來簡單抓包一下小紅書小程序(註意這裡是小程序,不是app)
不選擇app的原因是,小紅書的App有點難度,參照網上的一些思路,還是選擇瞭小程序
1、通過charles抓包對小程序進行分析
我們打開小紅書小程序,隨意搜索一個關鍵詞
按照我的路徑,你可以發現列表中的數據已經被我們抓到瞭。
但是你以為這就結束瞭?
不不不
通過這次抓包,我們知道瞭可以通過這個api接口獲取到數據
但是當我們把爬蟲都寫好時,我們會發現headers裡面有兩個很難處理的參數
“authorization”和”x-sign”
這兩個玩意,一直在變化,而且不知道從何獲取。
所以
2、使用mitmproxy來進行抓包
其實通過charles抓包,整體的抓取思路我們已經清晰
就是獲取到”authorization”和”x-sign”兩個參數,然後對url進行get請求
這裡用到的mitmproxy,其實和charles差不多,都是抓包工具
但是mitmproxy能夠跟Python一起執行
這就舒服很多啊
簡單給大傢舉例子
def request(flow): print(flow.request.headers)
在mitmproxy中提供這樣的方法給我們,我們可以通過request對象截取到request headers中的url、cookies、host、method、port、scheme等屬性
這不正是我們想要的嗎?
我們直接截取”authorization”和”x-sign” 這兩個參數
然後往headers裡填入
整個就完成瞭。
以上是我們整個的爬取思路,下面給大傢講解一下代碼怎麼寫
其實代碼寫起來並不難
首先,我們必須截取到搜索api的流,這樣我們才能夠對其進行獲取信息
if 'https://www.xiaohongshu.com/fe_api/burdock/weixin/v2/search/notes' in flow.request.url:
我們通過判斷flow的request裡面是否存在搜索api的url
來確定我們需要抓取的請求
authorization=re.findall("authorization',.*?'(.*?)'\)",str(flow.request.headers))[0] x_sign=re.findall("x-sign',.*?'(.*?)'\)",str(flow.request.headers))[0] url=flow.request.url
通過上述代碼,我們就能夠把最關鍵的三個參數拿到手瞭,接下來就是一些普通的解析json瞭。
最終,我們可以拿到自己想要的數據瞭
如果你想要獲取到單篇數據,可以拿到文章id後抓取
"https://www.xiaohongshu.com/discovery/item/" + str(id)
這個頁面headers裡需要帶有cookie,你隨意訪問一個網站都可以拿到cookie,目前看來好像是固定的
最後,可以把數據放入csv
總結
其實小紅書爬蟲的抓取並不是特別的難,關鍵在於思路以及使用的方法是什麼。
到此這篇關於使用Python爬蟲爬取小紅書完完整整的全過程的文章就介紹到這瞭,更多相關Python爬取小紅書內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python爬蟲Mitmproxy安裝使用學習筆記
- 移動測試開發Mitmproxy用於測試抓包神器詳解
- python 實現有道翻譯功能
- python3如何使用Requests測試帶簽名的接口
- Python 京東雲無線寶消息推送功能