XHS-
簡體中文 |
小紅書鏈接提取/作品采集工具:提取賬號發布、收藏、點贊、專輯作品鏈接;提取搜索結果作品鏈接、用戶鏈接;采集小紅書作品信息;提取小紅書作品下載地址;下載小紅書無水印作品文件!
?? 2024/9/24: 由于小紅書規則更新,使用版本號低于 1.7.1 的用戶腳本有封號風險,請及時更新用戶腳本后再使用!
?? 2024/10/13: 由于作品鏈接攜帶日期信息,使用先前日期獲取的作品鏈接可能會被風控,建議下載作品文件時使用最新獲取的作品鏈接!
? 本項目完全免費開源,無任何收費功能,請勿上當受騙!
項目功能
? XHS- 開發計劃及進度可前往 查閱
程序截圖
點擊圖片觀看演示視頻
支持鏈接
關于終端
? 推薦使用 終端 ( 11 默認終端)運行程序以便獲得最佳顯示效果!
使用方法
如果僅需下載無水印作品文件,建議選擇 程序運行 或 運行;如果有其他需求,建議選擇 源碼運行!
2.2 版本開始,項目功能無異常的情況下,無需額外處理 !
程序運行
Mac OS、 10 及以上用戶可前往 下載程序壓縮包,解壓后打開程序文件夾,雙擊運行 main 即可使用。
注意:Mac OS 平臺可執行文件 main 可能需要從終端命令行啟動;受設備限制,Mac OS 平臺可執行文件尚未經過測試,無法保證可用性!
若通過此方式使用程序,文件默認下載路徑為:.\\;配置文件路徑為:.\\.json
?? 運行
獲取鏡像創建容器
運行項目時不支持 命令行調用模式,無法使用 讀取剪貼板 與 監聽剪貼板 功能,可以正常粘貼內容,其他功能如有異常請反饋!
?? 源碼運行
安裝版本號不低于 3.12 的 解釋器下載本項目最新的源碼或 發布的源碼至本地打開終端,切換至項目根路徑運行 pip -i -r .txt 命令安裝程序所需模塊運行 main.py 即可使用
命令行模式
項目支持命令行運行模式,若想要下載圖文作品的部分圖片,可以使用此模式設置需要下載的圖片序號!
可以使用命令行 從瀏覽器讀取 并寫入配置文件!
命令示例: .\main.py -- --
bool 類型參數支持使用 true、false、1、0、yes、no、on 或 off(不區分大小寫)來設置。
服務器模式
啟動:運行命令: .\main.py
關閉:按下 Ctrl + C 關閉服務器
請求接口:/xhs/
請求方法:POST
請求格式:JSON
請求參數:
參數類型含義默認值
url
str
小紅書作品鏈接,自動提取,不支持多鏈接
無
bool
是否下載作品文件;設置為 true 將會耗費更多時間
false
index
list[int]
下載指定序號的圖片文件,僅對圖文作品生效; 參數設置為 false 時不生效
null
skip
bool
是否跳過存在下載記錄的作品;設置為 true 將不會返回存在下載記錄的作品數據
false
代碼示例:
def api_demo(): server = "http://127.0.0.1:8000/xhs/" data = { "url": "https://www.xiaohongshu.com/explore/123456789", "download": True, "index": [ 3, 6, 9, ], } response = requests.post(server, json=data) print(response.json())
用戶腳本
如果您的瀏覽器安裝了 瀏覽器擴展程序,可以添加 用戶腳本,無需下載安裝即可體驗項目功能!
腳本安裝成功后,打開小紅書頁面,查看腳本說明,并根據提示操作。
提示:使用 XHS- 用戶腳本批量提取作品鏈接,搭配 XHS- 程序可以實現批量下載無水印作品文件!
二次開發
如果有其他需求,可以根據 main.py 的注釋提示進行代碼調用或修改!
async def example(): """通過代碼設置參數,適合二次開發""" # 示例鏈接 error_link = "https://github.com/JoeanAmier/XHS_Downloader" demo_link = "https://www.xiaohongshu.com/explore/xxxxxxxxxx" multiple_links = f"{demo_link} {demo_link} {demo_link}" # 實例對象 work_path = "D:\\" # 作品數據/文件保存根路徑,默認值:項目根路徑 folder_name = "Download" # 作品文件儲存文件夾名稱(自動創建),默認值:Download name_format = "作品標題 作品描述" user_agent = "" # User-Agent cookie = "" # 小紅書網頁版 Cookie,無需登錄,可選參數,登錄狀態對數據采集有影響 proxy = None # 網絡代理 timeout = 5 # 請求數據超時限制,單位:秒,默認值:10 chunk = 1024 * 1024 * 10 # 下載文件時,每次從服務器獲取的數據塊大小,單位:字節 max_retry = 2 # 請求數據失敗時,重試的最大次數,單位:秒,默認值:5 record_data = False # 是否保存作品數據至文件 image_format = "WEBP" # 圖文作品文件下載格式,支持:PNG、WEBP folder_mode = False # 是否將每個作品的文件儲存至單獨的文件夾 # async with XHS() as xhs: # pass # 使用默認參數 async with XHS( work_path=work_path, folder_name=folder_name, name_format=name_format, user_agent=user_agent, cookie=cookie, proxy=proxy, timeout=timeout, chunk=chunk, max_retry=max_retry, record_data=record_data, image_format=image_format, folder_mode=folder_mode, ) as xhs: # 使用自定義參數 download = True # 是否下載作品文件,默認值:False # 返回作品詳細信息,包括下載地址 # 獲取數據失敗時返回空字典 print(await xhs.extract(error_link, download, )) print(await xhs.extract(demo_link, download, index=[1, 2])) # 支持傳入多個作品鏈接 print(await xhs.extract(multiple_links, download, ))
讀取剪貼板
項目使用 實現讀取剪貼板功能,該模塊在不同的系統上會有差異。
在 上,不需要額外的模塊。
在 Mac 上,該模塊使用 和 命令,這些命令應該隨操作系統一起提供。
在 Linux 上,該模塊使用 xclip 或 xsel 命令,這些命令應該隨操作系統一起提供。否則,請運行 "sudo apt-get xclip" 或 "sudo apt-get xsel"(注意:xsel 似乎并不總是有效)
在其他 Linux 系統上,你需要安裝 qtpy 或 PyQT5 模塊。
?? 配置文件
項目根目錄下的 .json 文件,首次運行自動生成,可以自定義部分運行參數。
如果設置了無效的參數值,程序將會使用參數默認值!
參數類型含義默認值
str
作品數據 / 文件保存根路徑
項目根路徑
str
作品文件儲存文件夾名稱
str
作品文件名稱格式,字段之間使用空格分隔,支持字段:收藏數量、評論數量、分享數量、點贊數量、作品標簽、作品ID、作品標題、作品描述、作品類型、發布時間、最后更新時間、作者昵稱、作者ID
發布時間 作者昵稱 作品標題
str
瀏覽器 User Agent
內置 User Agent
str
小紅書網頁版 ,無需登錄,非必需參數!
無
proxy
str | dict
設置程序代理
null
int
請求數據超時限制,單位:秒
10
chunk
int
下載文件時,每次從服務器獲取的數據塊大小,單位:字節
(2 MB)
int
請求數據失敗時,重試的最大次數,單位:秒
bool
是否保存作品數據至文件,保存格式:
false
str
圖文作品文件下載格式,支持:PNG、WEBP
該參數影響下載圖片時所用的接口,并非固定圖片格式!
PNG
bool
圖文作品文件下載開關
true
bool
視頻作品文件下載開關
true
bool
圖文動圖文件下載開關
false
bool
是否將每個作品的文件儲存至單獨的文件夾;文件夾名稱與文件名稱保持一致
false
bool
是否記錄下載成功的作品 ID,如果開啟,程序將會自動跳過下載存在記錄的作品
true
str
設置程序語言,目前支持:zh_CN、en_GB
zh_CN
其他說明:參數獲取示例;強烈建議根據實際瀏覽器信息進行設置!
2.2 版本開始,項目功能無異常的情況下,無需額外處理 !
打開瀏覽器(可選無痕模式啟動),訪問 登錄小紅書賬號(可跳過)按下 F12 打開開發人員工具選擇 網絡 選項卡勾選 保留日志在 過濾 輸入框輸入 -name:選擇 Fetch/XHR 篩選器點擊小紅書頁面任意作品在 網絡 選項卡選擇任意數據包(如果無數據包,重復步驟7)全選復制 寫入程序或配置文件
下載記錄
XHS- 會將下載過的作品 ID 儲存至數據庫,當重復下載相同的作品時,XHS- 會自動跳過該作品的文件下載(即使作品文件不存在),如果想要重新下載作品文件,請先刪除數據庫中對應的作品 ID,再使用 XHS- 下載作品文件!
該功能默認開啟,如果關閉該功能,XHS- 會檢查文件是否存在,若文件存在則跳過下載!
?? 支持項目
如果 XHS- 對您有幫助,請考慮為它點個 Star ?,感謝您的支持!
微信()支付寶()
如果您愿意,可以考慮提供資助為 XHS- 提供額外的支持!
?? 聯系作者
說明:群聊僅限于討論項目使用問題,嚴禁發布任何廣告,嚴禁討論任何賬號交易、賬號流量、流量變現、灰色產業等相關的內容!
? 作者的其他開源項目:
項目贊助
支持全球開源社區認可的活躍項目,并為非商業開發提供免費許可證。
發表評論