使用Python爬蟲爬取小紅書完完整整的全過程

2022-09-29 09:00:10 字數 1602 閱讀 1068

以下文章**於python進擊者 ,作者kuls

python爬蟲、資料分析、**開發等案例教程**免費****

首先,我們開啟之前大家配置好的charles

我們來簡單抓包一下小紅書小程式(注意這裡是小程式,不是app)

不選擇app的原因是,小紅書的app有點難度,參照網上的一些思路,還是選擇了小程式

1、通過charles抓包對小程式進行分析

我們開啟小紅書小程式,隨意搜尋乙個關鍵詞

按照我的路徑,你可以發現列表中的資料已經被我們抓到了。

但是你以為這就結束了?

不不不通過這次抓包,我們知道了可以通過這www.cppcns.com個api介面獲取到資料

但是當我們把爬蟲都寫好時,我們會發現headers裡面有兩個很難處理的引數

"authorization"和"x-sign"

這兩個玩意,一直在變化,而且不知道從何獲取。

所以2、使用mitmproxy來進行抓包

其實通過charles抓包,整體的抓取思路我們已經清晰

就是獲取到"authorization"和"x-sign"兩個引數,然後對url進行get請求

這裡用到的mitmproxy,其實和chwww.cppcns.comarles差不多,都是抓包工具

但是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 '' 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後抓取

"" + str(id)

這個頁面headers裡需要帶有cookie,你隨意訪問乙個**都可以拿到cookie,目前看來好像是固定的

最後,可以把資料放入csv

其實小紅書爬蟲的抓取並不是特別的難,關鍵在於思路以及使用的方法是什麼。

小紅書主頁爬取 小紅書資料爬取教程

該樓層疑似違規已被系統摺疊 隱藏此樓檢視此樓 無意間瀏覽進了小紅書的乙個頁面,既然進來了那麼不好意思,必須得搞一下 首先這裡有個問題,本人對計算機視覺幾乎小白,所以面對滑塊驗證只能靠碰撞獲取cookie,後來發現沒什麼卵用,概率太低,而且這個頁面幾乎也不需要登入,如果遇到需要登入的情況,就手動進 滑...

Python 爬蟲爬取網頁

工具 python 2.7 import urllib import urllib2 defgetpage url 爬去網頁的方法 request urllib.request url 訪問網頁 reponse urllib2.urlopen request 返回網頁 return response...

python爬蟲爬取策略

在爬蟲系統中,待抓取url佇列是很重要的一部分。待抓取url佇列中的url以什麼樣的順序排列也是乙個很重要的問題,因為這涉及到先抓取那個頁面,後抓取哪個頁面。而決定這些url排列順序的方法,叫做抓取策略。下面重點介紹幾種常見的抓取策略 一 深度優先遍歷策略 深度優先遍歷策略是指網路爬蟲會從起始頁開始...