xhs-search-workflow
13
总安装量
11
周安装量
#24865
全站排名
安装命令
npx skills add https://github.com/chinatsu1124/xhs-search-workflow-skill --skill xhs-search-workflow
Agent 安装分布
openclaw
10
claude-code
9
opencode
8
codex
7
gemini-cli
6
cursor
6
Skill 文档
å°çº¢ä¹¦å·¥ä½æµæè½è¯´æ / XHS Workflow Skill Guide
ä¸æè¯´æ
åèåº
- æ¬æè½ç±
Spider_XHSéæèæ¥ã - åèä»åºï¼
cv-cat/Spider_XHS - åèå°åï¼https://github.com/cv-cat/Spider_XHS
éæååï¼
- å»é¤å¯¹åä»
apis/ãxhs_utils/çè¿è¡æ¶ä¾èµã - å°ç¾å JS ä¸ä¾èµæå å°æè½ç®å½ã
- æä¾ç»ä¸ CLI ä¸ååºæ¯èæ¬ï¼éä½è°ç¨å¤æåº¦ã
å®è£
卿°æºå¨ä¸é¦æ¬¡è¿è¡ï¼
skills/xhs-search-workflow/scripts/setup_env.sh
该å½ä»¤ä¼å建 skills/xhs-search-workflow/.venv å¹¶å®è£
Python ä¾èµã
é´æè¾å ¥
--cookie "..."- æ
--env-file /path/to/.envï¼å ¶ä¸COOKIES="..."ï¼ - å¦å®¿ä¸»æºä»£çåé导è´å¤±è´¥ï¼æ·»å
--no-env-proxy
馿¬¡ä½¿ç¨ï¼å¦ä½è·å Cookie
- 卿µè§å¨ç»å½å°çº¢ä¹¦ç½é¡µç«¯ï¼ç¡®ä¿æ¯å·²ç»å½ç¶æï¼ã
- æå¼å¼åè
å·¥å
·
Networkï¼çéFetch/XHRï¼å·æ°é¡µé¢åä»»é䏿¡ä¸å¡è¯·æ±ã - ä¼å
éæ©
edith.xiaohongshu.comç请æ±å¹¶å¤å¶Request Headerséç宿´cookieåæ®µã - å ¶ä»åå请æ±ä¹å¯ç¨ï¼ä½é满足ï¼
- 请æ±å¤´éå å«å®æ´ Cookieã
- è³å°æ
a1ãweb_sessionãgidã
- å° Cookie åå
¥
.envï¼
COOKIES="宿´cookieå符串"
- 馿¬¡éªè¯å»ºè®®å è¿è¡ï¼
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/xhs_full_cli.py \
--env-file .env --no-env-proxy homefeed-channels
- è¥è¿åâç»å½å·²è¿æâæâæ ç»å½ä¿¡æ¯âï¼éæ°ç»å½ç½é¡µå¹¶éæ°æå Cookieã
å®å ¨å»ºè®®ï¼
- ä¸è¦å¨èå¤©ãæªå¾ãGit ä»åºä¸æ³é² Cookieã
- å°
.envå å ¥.gitignoreã
èæ¬æ¸ å
scripts/search_notes.pyï¼ç¬è®°æç´¢ï¼æ¯æçéï¼scripts/fetch_note_texts.pyï¼æåæ é¢/æ£æ/å¾ç龿¥ï¼å¯éä¸è½½å¾çscripts/xhs_full_cli.pyï¼ç»ä¸å ¥å£ï¼ç¨æ·/è¯è®º/æ¶æ¯/é¦é¡µ/åä½è /æ æ°´å°ï¼scripts/export_notes.pyï¼å¯¼åº Excel ä¸åªä½æä»¶
常ç¨å½ä»¤
- æç´¢ç¬è®°
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/search_notes.py "æ±ä¸°é¶è¡" \
--num 10 --sort 0 --note-type 0 --no-env-proxy --json
- æåç¬è®°æ£æä¸å¾ç龿¥
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/fetch_note_texts.py \
--url-file note_urls.txt --no-env-proxy \
--timeout 30 --retries 2 --min-interval 4 --max-interval 7 \
--out note_content.json
- æååæ¶ä¸è½½å¾ç
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/fetch_note_texts.py \
--url-file note_urls.txt --no-env-proxy \
--download-images --image-dir xhs_images \
--timeout 30 --retries 2 --min-interval 4 --max-interval 7 \
--out note_content.json
- ç»ä¸ CLI 示ä¾ï¼æç´¢ç¨æ·ï¼
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/xhs_full_cli.py \
--env-file .env --no-env-proxy search-users --query "æ±ä¸°é¶è¡" --num 10
- å¯¼åº Excel/åªä½
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/export_notes.py \
--query "æ±ä¸°é¶è¡" --num 10 --save all \
--excel xhs_notes.xlsx --media-dir xhs_media --no-env-proxy
xhs_full_cli.py åå½ä»¤
user-info --user-id <id>user-self-infouser-self-info2user-posts --user-url <url>user-likes --user-url <url>user-collects --user-url <url>note-info --url <url>note-comments --url <url>search-keyword --word <kw>search-users --query <kw> --num <n>messages-unreadmessages-mentionsmessages-likesmessages-connectionshomefeed-channelshomefeed-recommend --category <name> --num <n>creator-postedno-water-video --note-id <id>no-water-img --img-url <url>
åè½èå´ä¸è¾¹ç
- è¦çèå´ï¼æç´¢ã详æ ãè¯è®ºãç¨æ·ãæ¶æ¯ãé¦é¡µæ¨èãåä½è ä½åãæ æ°´å°é¾æ¥è½¬æ¢ã导åºã
- å½åè¾¹çï¼ä»¥ Cookie é´æä¸ºä¸»ï¼ä¸å 置交äºå¼ç»å½æµç¨ã
- 设计ä¼ç¹ï¼èæ¬èè´£æ¸ æ°ãç»ä¸å ¥å£å®æ´ãç¦»çº¿èµæºé½å ¨ãè¿ç§»ææ¬ä½ã
离线ä¸å¯ç§»æ¤è®¾è®¡
- ç¾å JS æå
å¨
assets/js/ã - 离线
crypto-jsä½äºassets/js/vendor/crypto-js.jsã - è¿è¡æ¶ä¸ä¾èµåä»
Spider_XHSçapis/æxhs_utils/ã
æ ¡éª
æ¯æ¬¡æ¹å¨åæ§è¡ï¼
skills/xhs-search-workflow/.venv/bin/python \
"$CODEX_HOME/skills/.system/skill-creator/scripts/quick_validate.py" \
skills/xhs-search-workflow
åºç¡ smoke testsï¼
skills/xhs-search-workflow/.venv/bin/python skills/xhs-search-workflow/scripts/xhs_full_cli.py --help
skills/xhs-search-workflow/.venv/bin/python skills/xhs-search-workflow/scripts/export_notes.py --help
æ§è¡æ³¨æäºé¡¹
- ä¼å
使ç¨
skills/xhs-search-workflow/.venv/bin/pythonï¼é¿å ç³»ç» Python çæ¬åå·®ã - ç¯å¢åååå
æ§è¡
scripts/setup_env.shã - ä¿ç
assets/js/vendor/crypto-js.js以ä¿è¯ç¦»çº¿å¯è¿è¡ã - èæ¬é»è®¤ UTF-8ï¼Windows ä¸å¯é¢å¤è®¾ç½®
PYTHONUTF8=1ä¸PYTHONIOENCODING=utf-8ã scripts/xhs_client.pyä¼èªå¨æ ¡éª JS èµæºå¹¶åæ¥assets/js/static/xhs_xray_pack{1,2}.jsãxhs_full_cli.pyå ¨å±åæ°å¿ é¡»å¨åå½ä»¤ä¹åã- æ£ç¡®ï¼
xhs_full_cli.py --env-file .env --no-env-proxy <subcommand> ... - é误ï¼
xhs_full_cli.py <subcommand> ... --env-file .env messages-*è¿åå¯è½å¾å¤§ï¼å»ºè®®é å--outè¾åºæä»¶ãfetch_note_texts.pyé»è®¤ä¸²è¡èæµ+éè¯ï¼éåè§é¿ä¸ç¨³å®ç½ç»ä¸é£æ§æå¨ã
æ éææ¥
è§ references/troubleshooting.mdã
English Guide
Reference Repository
- This skill is refactored from
Spider_XHS. - Reference repository:
cv-cat/Spider_XHS - Reference URL: https://github.com/cv-cat/Spider_XHS
Refactor principles:
- Remove runtime dependency on original
apis/andxhs_utilsmodules. - Bundle signing JS assets and dependencies inside this skill.
- Provide a unified CLI plus scenario scripts for simpler reuse.
Setup
Run once on a new machine:
skills/xhs-search-workflow/scripts/setup_env.sh
It creates skills/xhs-search-workflow/.venv and installs Python dependencies.
Auth Input
--cookie "..."- Or
--env-file /path/to/.envwithCOOKIES="..." - Add
--no-env-proxywhen host proxy variables break requests.
First Use: How to Capture Cookie
- Log in to Xiaohongshu Web in your browser.
- Open devtools
Network, filterFetch/XHR, refresh, and pick a business API request. - Prefer a request to
edith.xiaohongshu.com, then copy the fullcookievalue fromRequest Headers. - Other request domains can also work if:
- The request contains a full cookie header.
- It includes at least
a1,web_session, andgid.
- Save cookie in
.env:
COOKIES="your_full_cookie_string"
- First-run verification:
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/xhs_full_cli.py \
--env-file .env --no-env-proxy homefeed-channels
- If response shows
ç»å½å·²è¿æ/æ ç»å½ä¿¡æ¯, re-login in browser and capture cookie again.
Security notes:
- Never paste cookie in chats, screenshots, or Git repositories.
- Keep
.envin.gitignore.
Script List
scripts/search_notes.py: note search with filtersscripts/fetch_note_texts.py: extract title/text/image URLs, optional image downloadscripts/xhs_full_cli.py: unified entry for user/comment/message/homefeed/creator/no-water APIsscripts/export_notes.py: export note data to Excel and/or media files
Typical Commands
- Search notes
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/search_notes.py "HSBC" \
--num 10 --sort 0 --note-type 0 --no-env-proxy --json
- Extract note text and image URLs
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/fetch_note_texts.py \
--url-file note_urls.txt --no-env-proxy \
--timeout 30 --retries 2 --min-interval 4 --max-interval 7 \
--out note_content.json
- Download images while extracting
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/fetch_note_texts.py \
--url-file note_urls.txt --no-env-proxy \
--download-images --image-dir xhs_images \
--timeout 30 --retries 2 --min-interval 4 --max-interval 7 \
--out note_content.json
- Unified CLI example (search users)
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/xhs_full_cli.py \
--env-file .env --no-env-proxy search-users --query "HSBC" --num 10
- Export Excel/media
skills/xhs-search-workflow/.venv/bin/python \
skills/xhs-search-workflow/scripts/export_notes.py \
--query "HSBC" --num 10 --save all \
--excel xhs_notes.xlsx --media-dir xhs_media --no-env-proxy
xhs_full_cli.py Subcommands
user-info --user-id <id>user-self-infouser-self-info2user-posts --user-url <url>user-likes --user-url <url>user-collects --user-url <url>note-info --url <url>note-comments --url <url>search-keyword --word <kw>search-users --query <kw> --num <n>messages-unreadmessages-mentionsmessages-likesmessages-connectionshomefeed-channelshomefeed-recommend --category <name> --num <n>creator-postedno-water-video --note-id <id>no-water-img --img-url <url>
Scope and Boundaries
- Coverage: search, note detail, comments, users, messages, homefeed, creator posts, no-watermark conversion, export.
- Boundary: cookie-based auth is the default; interactive login flow is not included.
- Strengths: clear script responsibilities, complete unified CLI, bundled offline assets, and portable deployment.
Offline and Portability
- Signing JS is bundled in
assets/js/. - Offline
crypto-jsis bundled atassets/js/vendor/crypto-js.js. - Runtime does not import
apis/orxhs_utils/from original Spider_XHS.
Validation
Run after edits:
skills/xhs-search-workflow/.venv/bin/python \
"$CODEX_HOME/skills/.system/skill-creator/scripts/quick_validate.py" \
skills/xhs-search-workflow
Basic smoke tests:
skills/xhs-search-workflow/.venv/bin/python skills/xhs-search-workflow/scripts/xhs_full_cli.py --help
skills/xhs-search-workflow/.venv/bin/python skills/xhs-search-workflow/scripts/export_notes.py --help
Execution Notes
- Prefer
skills/xhs-search-workflow/.venv/bin/pythonover system Python. - Rerun
scripts/setup_env.shafter environment changes. - Keep
assets/js/vendor/crypto-js.jsfor offline portability. - Scripts enforce UTF-8 output; on Windows also set
PYTHONUTF8=1andPYTHONIOENCODING=utf-8. scripts/xhs_client.pyauto-checks JS assets and syncsassets/js/static/xhs_xray_pack{1,2}.js.- Put global flags before subcommands in
xhs_full_cli.py. - Message endpoints can be large; prefer
--outfiles. fetch_note_texts.pyuses serial throttling and retries for stability.
Troubleshooting
See references/troubleshooting.md.