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- 提供額外的支持!

?? 聯系作者

說明:群聊僅限于討論項目使用問題,嚴禁發布任何廣告,嚴禁討論任何賬號交易、賬號流量、流量變現、灰色產業等相關的內容!

? 作者的其他開源項目:

項目贊助

支持全球開源社區認可的活躍項目,并為非商業開發提供免費許可證。