小紅書數(shù)據(jù)采集終極指南:5分鐘快速掌握Python自動(dòng)化工具
小紅書數(shù)據(jù)采集終極指南5分鐘快速掌握Python自動(dòng)化工具【免費(fèi)下載鏈接】xhs基于小紅書 Web 端進(jìn)行的請(qǐng)求封裝。https://reajason.github.io/xhs/項(xiàng)目地址: https://gitcode.com/gh_mirrors/xh/xhs想要輕松獲取小紅書公開數(shù)據(jù)進(jìn)行內(nèi)容分析和市場(chǎng)研究嗎xhs項(xiàng)目為你提供了一個(gè)簡(jiǎn)單高效的Python解決方案。這個(gè)開源工具封裝了小紅書Web端的請(qǐng)求接口讓你能夠以編程方式訪問筆記、用戶、搜索等數(shù)據(jù)無需手動(dòng)操作網(wǎng)頁(yè)。無論你是數(shù)據(jù)分析師、內(nèi)容創(chuàng)作者還是產(chǎn)品經(jīng)理都能通過這個(gè)工具快速獲取所需的小紅書數(shù)據(jù)為你的決策提供有力支持。為什么選擇小紅書數(shù)據(jù)采集工具在當(dāng)今社交媒體分析領(lǐng)域小紅書已經(jīng)成為不可忽視的內(nèi)容平臺(tái)。傳統(tǒng)的網(wǎng)頁(yè)爬蟲開發(fā)需要處理復(fù)雜的反爬機(jī)制和頻繁的接口變更而xhs工具幫你解決了這些痛點(diǎn)功能特點(diǎn)傳統(tǒng)方法xhs工具接口穩(wěn)定性需要頻繁維護(hù)封裝官方接口穩(wěn)定性高反爬處理手動(dòng)處理驗(yàn)證碼、簽名自動(dòng)簽名驗(yàn)證機(jī)制數(shù)據(jù)完整性可能缺失字段完整的數(shù)據(jù)結(jié)構(gòu)開發(fā)效率數(shù)天到數(shù)周幾分鐘上手維護(hù)成本持續(xù)投入開源社區(qū)維護(hù)重要提示本工具僅用于學(xué)習(xí)和研究目的請(qǐng)遵守小紅書平臺(tái)的使用條款不要對(duì)網(wǎng)站造成壓力或進(jìn)行未經(jīng)授權(quán)的活動(dòng)。快速開始5分鐘上手小紅書數(shù)據(jù)采集安裝步驟超簡(jiǎn)單首先確保你已安裝Python 3.7或更高版本然后只需要一行命令pip install xhs如果你想要最新版本可以直接從Git倉(cāng)庫(kù)安裝pip install githttps://gitcode.com/gh_mirrors/xh/xhs獲取必要的認(rèn)證信息要使用這個(gè)工具你需要準(zhǔn)備兩個(gè)關(guān)鍵信息Cookie- 從小紅書網(wǎng)站獲取的登錄憑證簽名函數(shù)- 處理請(qǐng)求簽名的函數(shù)別擔(dān)心這些聽起來復(fù)雜其實(shí)很簡(jiǎn)單Cookie可以通過瀏覽器開發(fā)者工具獲取而簽名函數(shù)項(xiàng)目已經(jīng)提供了示例。第一個(gè)采集腳本讓我們寫一個(gè)最簡(jiǎn)單的示例獲取單篇筆記的詳細(xì)信息from xhs import XhsClient # 初始化客戶端 cookie 你的小紅書cookie xhs_client XhsClient(cookie) # 獲取筆記詳情 note_id 6505318c000000001f03c5a6 note_data xhs_client.get_note_by_id(note_id) print(f筆記標(biāo)題{note_data.get(title, 無標(biāo)題)}) print(f作者{note_data.get(user, {}).get(nickname, 匿名)}) print(f點(diǎn)贊數(shù){note_data.get(likes, 0)})核心功能深度解析1. 筆記數(shù)據(jù)獲取 小紅書數(shù)據(jù)采集工具提供了多種獲取筆記數(shù)據(jù)的方式按ID獲取單篇筆記# 獲取指定ID的筆記 note xhs_client.get_note_by_id(筆記ID) # 獲取筆記中的圖片URL from xhs import help image_urls help.get_imgs_url_from_note(note)獲取用戶發(fā)布的筆記列表# 獲取用戶的所有筆記 user_notes xhs_client.get_user_notes(用戶ID, page1)按關(guān)鍵詞搜索筆記# 搜索美妝相關(guān)的筆記 search_results xhs_client.get_note_by_keyword( keyword美妝, page1, sortgeneral # 排序方式general(綜合)、time(時(shí)間) )2. 用戶信息分析 了解創(chuàng)作者信息對(duì)于內(nèi)容分析至關(guān)重要# 獲取用戶基本信息 user_info xhs_client.get_user_info(用戶ID) print(f用戶名{user_info[nickname]}) print(f粉絲數(shù){user_info[fans]}) print(f獲贊數(shù){user_info[likes]}) print(f筆記數(shù){user_info[notes]})3. 內(nèi)容分類瀏覽 ?工具內(nèi)置了多種內(nèi)容分類讓你可以按興趣領(lǐng)域獲取內(nèi)容from xhs import FeedType # 獲取穿搭類內(nèi)容 fashion_notes xhs_client.get_home_feed(FeedType.FASION) # 獲取美食類內(nèi)容 food_notes xhs_client.get_home_feed(FeedType.FOOD) # 獲取旅行類內(nèi)容 travel_notes xhs_client.get_home_feed(FeedType.TRAVEL)支持的內(nèi)容分類包括穿搭FASION美食FOOD彩妝COSMETICS影視MOVIE職場(chǎng)CAREER情感EMOTION家居HOURSE游戲GAME旅行TRAVEL健身FITNESS實(shí)際應(yīng)用場(chǎng)景案例場(chǎng)景1競(jìng)品內(nèi)容分析假設(shè)你是一家美妝品牌的市場(chǎng)人員想了解競(jìng)品在小紅書上的表現(xiàn)import pandas as pd from datetime import datetime, timedelta def analyze_competitor_content(competitor_id, days30): 分析競(jìng)品最近30天的內(nèi)容表現(xiàn) all_notes [] current_page 1 while True: notes xhs_client.get_user_notes(competitor_id, pagecurrent_page) if not notes: break # 過濾最近30天的筆記 cutoff_date datetime.now() - timedelta(daysdays) recent_notes [ note for note in notes if datetime.fromtimestamp(note[time]/1000) cutoff_date ] all_notes.extend(recent_notes) current_page 1 # 創(chuàng)建數(shù)據(jù)分析表 df pd.DataFrame(all_notes) # 計(jì)算關(guān)鍵指標(biāo) avg_likes df[likes].mean() avg_comments df[comments].mean() avg_shares df[shares].mean() return { total_notes: len(df), avg_likes: round(avg_likes, 2), avg_comments: round(avg_comments, 2), avg_shares: round(avg_shares, 2), best_performing: df.loc[df[likes].idxmax()] }場(chǎng)景2熱門話題追蹤追蹤特定話題的熱度變化發(fā)現(xiàn)內(nèi)容趨勢(shì)def track_topic_trend(keyword, days7): 追蹤話題7天內(nèi)的熱度變化 daily_data {} for i in range(days): date datetime.now() - timedelta(daysi) date_str date.strftime(%Y-%m-%d) # 搜索當(dāng)天相關(guān)筆記 results xhs_client.get_note_by_keyword( keywordkeyword, page1, sorttime ) daily_data[date_str] { total_notes: len(results), avg_likes: sum(n[likes] for n in results) / max(len(results), 1), top_note: max(results, keylambda x: x[likes]) if results else None } return daily_data常見問題與解決方案Q1: 如何獲取有效的CookieA: 登錄小紅書網(wǎng)頁(yè)版后按F12打開開發(fā)者工具在Network標(biāo)簽中找到任意請(qǐng)求復(fù)制Request Headers中的Cookie字段即可。Q2: 遇到簽名失敗錯(cuò)誤怎么辦A: 簽名失敗通常是因?yàn)楹灻瘮?shù)配置問題。項(xiàng)目提供了完整的簽名示例你可以參考 example/basic_usage.py 中的實(shí)現(xiàn)。Q3: 請(qǐng)求頻率有限制嗎A: 為了避免對(duì)小紅書服務(wù)器造成壓力建議添加適當(dāng)?shù)恼?qǐng)求間隔如1-3秒避免短時(shí)間內(nèi)大量請(qǐng)求同一接口使用代理IP輪換如果需要大量采集Q4: 數(shù)據(jù)采集的合法性如何A: 請(qǐng)務(wù)必注意僅采集公開數(shù)據(jù)不要用于商業(yè)侵權(quán)用途遵守robots.txt協(xié)議尊重用戶隱私Q5: 如何保存采集的數(shù)據(jù)A: 建議使用以下格式保存數(shù)據(jù)import json import csv # 保存為JSON格式 with open(notes.json, w, encodingutf-8) as f: json.dump(notes_data, f, ensure_asciiFalse, indent2) # 保存為CSV格式 import pandas as pd df pd.DataFrame(notes_data) df.to_csv(notes.csv, indexFalse, encodingutf-8-sig)進(jìn)階使用技巧1. 錯(cuò)誤處理與重試機(jī)制from xhs.exception import DataFetchError, IPBlockError import time def safe_get_note(note_id, max_retries3): 安全獲取筆記帶重試機(jī)制 for attempt in range(max_retries): try: return xhs_client.get_note_by_id(note_id) except (DataFetchError, IPBlockError) as e: if attempt max_retries - 1: raise wait_time 2 ** attempt # 指數(shù)退避 print(f請(qǐng)求失敗{wait_time}秒后重試...) time.sleep(wait_time)2. 批量處理與進(jìn)度顯示from tqdm import tqdm def batch_process_notes(note_ids): 批量處理筆記顯示進(jìn)度條 results [] for note_id in tqdm(note_ids, desc處理筆記): try: note xhs_client.get_note_by_id(note_id) results.append(note) time.sleep(1) # 避免請(qǐng)求過快 except Exception as e: print(f處理筆記 {note_id} 失敗: {e}) return results3. 數(shù)據(jù)清洗與格式化def clean_note_data(raw_note): 清洗和格式化筆記數(shù)據(jù) cleaned { note_id: raw_note.get(id, ), title: raw_note.get(title, ).strip(), author: raw_note.get(user, {}).get(nickname, ), publish_time: datetime.fromtimestamp( raw_note.get(time, 0) / 1000 ).strftime(%Y-%m-%d %H:%M:%S), likes: raw_note.get(likes, 0), comments: raw_note.get(comments, 0), shares: raw_note.get(shares, 0), collects: raw_note.get(collects, 0), tags: [tag.get(name, ) for tag in raw_note.get(tag_list, [])], image_count: len(raw_note.get(images, [])), video_url: raw_note.get(video, {}).get(url, ) if raw_note.get(video) else } # 計(jì)算互動(dòng)率 total_interactions cleaned[likes] cleaned[comments] cleaned[shares] cleaned[interaction_rate] round(total_interactions / max(cleaned[likes], 1), 4) return cleaned最佳實(shí)踐建議數(shù)據(jù)采集策略分時(shí)段采集避免在高峰時(shí)段集中請(qǐng)求增量更新只采集新增或更新的內(nèi)容數(shù)據(jù)驗(yàn)證定期檢查數(shù)據(jù)完整性和準(zhǔn)確性備份機(jī)制定期備份已采集的數(shù)據(jù)性能優(yōu)化優(yōu)化方向具體措施預(yù)期效果請(qǐng)求優(yōu)化合并相似請(qǐng)求減少請(qǐng)求次數(shù)30%緩存策略本地緩存已獲取數(shù)據(jù)降低重復(fù)請(qǐng)求50%并發(fā)控制合理設(shè)置并發(fā)數(shù)提升采集速度2-3倍錯(cuò)誤恢復(fù)實(shí)現(xiàn)斷點(diǎn)續(xù)采避免重復(fù)工作合規(guī)使用指南?可以做的采集公開的筆記數(shù)據(jù)進(jìn)行研究分析用于個(gè)人學(xué)習(xí)和小規(guī)模項(xiàng)目遵守平臺(tái)的robots.txt規(guī)則?禁止做的大規(guī)模商業(yè)數(shù)據(jù)采集侵犯用戶隱私對(duì)服務(wù)器造成壓力違反平臺(tái)用戶協(xié)議資源與支持官方文檔項(xiàng)目的完整API文檔可以在 docs/source/xhs.rst 找到包含了所有類和方法的詳細(xì)說明。示例代碼項(xiàng)目提供了豐富的示例代碼幫助你快速上手example/basic_usage.py - 基礎(chǔ)使用示例example/login_qrcode.py - 二維碼登錄示例example/basic_sign_server.py - 簽名服務(wù)器示例核心源碼如果你想深入了解實(shí)現(xiàn)原理可以查看核心源碼xhs/core.py - 主要功能實(shí)現(xiàn)xhs/help.py - 輔助函數(shù)測(cè)試用例項(xiàng)目包含完整的測(cè)試用例確保代碼質(zhì)量tests/test_xhs.py - 主要功能測(cè)試tests/test_help.py - 輔助函數(shù)測(cè)試總結(jié)小紅書數(shù)據(jù)采集工具為你提供了一個(gè)強(qiáng)大而靈活的數(shù)據(jù)獲取方案。通過這個(gè)工具你可以快速獲取小紅書平臺(tái)的公開數(shù)據(jù)深度分析內(nèi)容趨勢(shì)和用戶行為自動(dòng)化處理重復(fù)的數(shù)據(jù)采集任務(wù)構(gòu)建應(yīng)用基于小紅書數(shù)據(jù)的分析系統(tǒng)記住技術(shù)只是工具如何使用它才是關(guān)鍵。始終將合規(guī)性和道德考量放在首位用技術(shù)創(chuàng)造價(jià)值而不是問題。希望這個(gè)工具能幫助你在小紅書數(shù)據(jù)分析的道路上走得更遠(yuǎn)、更穩(wěn)如果你在使用過程中遇到問題或者有改進(jìn)建議歡迎參與項(xiàng)目的開發(fā)和討論。開源社區(qū)的力量能讓這個(gè)工具變得更加強(qiáng)大和完善?!久赓M(fèi)下載鏈接】xhs基于小紅書 Web 端進(jìn)行的請(qǐng)求封裝。https://reajason.github.io/xhs/項(xiàng)目地址: https://gitcode.com/gh_mirrors/xh/xhs創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考

相關(guān)新聞

Java 23 種設(shè)計(jì)模式:從踩坑到精通 | 番外:外觀模式 —— 物流訂單處理實(shí)戰(zhàn)

Java 23 種設(shè)計(jì)模式:從踩坑到精通 | 番外:外觀模式 —— 物流訂單處理實(shí)戰(zhàn)

Java 23 種設(shè)計(jì)模式:從踩坑到精通 | 番外:外觀模式 —— 物流訂單處理實(shí)戰(zhàn) 摘要:外觀模式為子系統(tǒng)中的一組接口提供一個(gè)統(tǒng)一的高層接口,讓客戶端只需一鍵操作即可完成原本需要多次調(diào)用的復(fù)雜流程。本文結(jié)合**智能物流中“訂單處理…

2026/7/29 23:10:47 閱讀更多
私有化部署,企業(yè) AI 定制繞不開的安全底線

私有化部署,企業(yè) AI 定制繞不開的安全底線

# 私有化部署,企業(yè) AI 定制繞不開的安全底線## 引言一家制造業(yè)企業(yè)的 CIO 在評(píng)估 AI 定制方案時(shí),問了一個(gè)很直接的問題:我們的生產(chǎn)數(shù)據(jù)、客戶數(shù)據(jù)、工藝參數(shù),能不能不出公司。供應(yīng)商說可以用云端方案,成本低、上線快?!?/p>

2026/7/30 0:31:09 閱讀更多
字段定義沖突,異構(gòu)系統(tǒng)對(duì)接最隱蔽的坑

字段定義沖突,異構(gòu)系統(tǒng)對(duì)接最隱蔽的坑

# 字段定義沖突,異構(gòu)系統(tǒng)對(duì)接最隱蔽的坑## 引言做完異構(gòu)系統(tǒng)對(duì)接的數(shù)據(jù)接入,團(tuán)隊(duì)往往會(huì)松一口氣,覺得系統(tǒng)通了、數(shù)據(jù)能取了,集成就算完成了。但接著跑跨系統(tǒng)的報(bào)表,數(shù)字總是對(duì)不上。兩個(gè)系統(tǒng)都查得到客戶,但…

2026/7/30 0:31:09 閱讀更多
外貿(mào)獨(dú)立站定制服務(wù)商推薦

外貿(mào)獨(dú)立站定制服務(wù)商推薦

近年來,中國(guó)外貿(mào)企業(yè)正加速?gòu)摹碑a(chǎn)品出?!毕颉逼放瞥龊!鞭D(zhuǎn)型,獨(dú)立站作為直接面向海外客戶的核心數(shù)字資產(chǎn),已成為必不可少的戰(zhàn)略布局。據(jù)行業(yè)數(shù)據(jù),2026年網(wǎng)站建設(shè)行業(yè)市場(chǎng)規(guī)模已突破980億元,其中高端定制網(wǎng)站開發(fā)需求同…

2026/7/30 0:31:09 閱讀更多
Grok 4.5 Function Calling實(shí)戰(zhàn):接入自動(dòng)化工作流完整教程與實(shí)測(cè)

Grok 4.5 Function Calling實(shí)戰(zhàn):接入自動(dòng)化工作流完整教程與實(shí)測(cè)

前言:Grok 4.5的函數(shù)調(diào)用能撐住自動(dòng)化了嗎? Grok 4.3的函數(shù)調(diào)用是公認(rèn)短板——綜合6.1分排四款最后,可選參數(shù)觸發(fā)率45%、并行調(diào)用成功率52%,做自動(dòng)化工作流基本不敢用。4.5說改善了,但改善了多少?能不能接…

2026/7/30 0:31:09 閱讀更多
HarmonyOS應(yīng)用開發(fā)實(shí)戰(zhàn):貓貓大作戰(zhàn)-@State 得分與狀態(tài)管理

HarmonyOS應(yīng)用開發(fā)實(shí)戰(zhàn):貓貓大作戰(zhàn)-@State 得分與狀態(tài)管理

前言 在「貓貓大作戰(zhàn)」中,貓咪等級(jí)提升是合并進(jìn)化的結(jié)果:三只同級(jí)貓合并為一只高級(jí)貓。等級(jí)從 1(小貓)到 6(傳奇貓)共六級(jí)。 一、等級(jí)提升 // 合并升級(jí)邏輯 private upgradeCat(x: number, y: number, c…

2026/7/30 0:31:09 閱讀更多
[GESP202606 四級(jí)] 掃雷

[GESP202606 四級(jí)] 掃雷

B4557 [GESP202606 四級(jí)] 掃雷 https://www.luogu.com.cn/problem/B4557 中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)2026年6月C四級(jí)講解——掃雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四級(jí)] 掃雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:01:06 閱讀更多