จีนตัวย่อ |. อังกฤษ
เครื่องมือแยก/รวบรวมงานของ Xiaohongshu : แยกโพสต์ในบัญชี คอลเลกชัน ไลค์ และลิงก์งานของอัลบั้ม แยกลิงก์งานของผลการค้นหาและลิงก์ผู้ใช้ รวบรวมข้อมูลงานของ Xiaohongshu ดาวน์โหลดไฟล์งานของ Xiaohongshu
โปรเจ็กต์นี้ฟรีและโอเพ่นซอร์สโดยสมบูรณ์ โดยไม่มีฟังก์ชันที่ต้องชำระเงิน โปรดอย่าถูกหลอก!
แผนการพัฒนาและความคืบหน้าของ XHS-Downloader สามารถพบได้ในโครงการ
คลิกที่ภาพเพื่อชมวิดีโอสาธิต
https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXX
https://www.xiaohongshu.com/discovery/item/作品ID?xsec_token=XXX
https://xhslink.com/分享码
รองรับการป้อนลิงก์งานหลายรายการพร้อมกัน โดยใช้ช่องว่างเพื่อแยกลิงก์ โปรแกรมจะแยกลิงก์ที่ถูกต้องโดยอัตโนมัติโดยไม่ต้องประมวลผลเพิ่มเติม!
ขอแนะนำให้ใช้ Windows Terminal (เทอร์มินัลเริ่มต้นของ Windows 11) เพื่อรันโปรแกรมเพื่อให้ได้เอฟเฟกต์การแสดงผลที่ดีที่สุด!
หากคุณต้องการดาวน์โหลดไฟล์งานโดยไม่มีลายน้ำ แนะนำให้เลือก โปรแกรมที่ทำงานอยู่ หรือ ทำงานด้วย Docker หากคุณมีความต้องการอื่น ๆ ขอแนะนำให้เลือก ซอร์สโค้ดที่ทำงานอยู่ !
เริ่มตั้งแต่เวอร์ชัน 2.2
หากไม่มีความผิดปกติในฟังก์ชันโปรเจ็กต์ ก็ไม่จำเป็นต้องประมวลผลคุกกี้เพิ่มเติม!
ผู้ใช้ Mac OS, Windows 10 ขึ้นไปสามารถไปที่ Releases เพื่อดาวน์โหลดแพ็คเกจโปรแกรมบีบอัด แตกไฟล์ เปิดโฟลเดอร์โปรแกรม และดับเบิลคลิกเพื่อเรียกใช้ main
เพื่อใช้งาน
หมายเหตุ: ไฟล์ปฏิบัติการแพลตฟอร์ม Mac OS main
อาจต้องเริ่มต้นจากบรรทัดคำสั่งเทอร์มินัล เนื่องจากข้อจำกัดของอุปกรณ์ ไฟล์ปฏิบัติการแพลตฟอร์ม Mac OS ยังไม่ได้รับการทดสอบและไม่สามารถรับประกันความพร้อมใช้งานได้!
หากคุณใช้โปรแกรมในลักษณะนี้ พาธการดาวน์โหลดไฟล์เริ่มต้นคือ: ._internalDownload
; พาธของไฟล์คอนฟิกูเรชันคือ: ._internalsettings.json
Dockerfile
เพื่อสร้างรูปภาพdocker pull joeanamier/xhs-downloader
เพื่อดึงรูปภาพdocker run -it joeanamier/xhs-downloader
docker run -it joeanamier/xhs-downloader python main.py server
docker start -i 容器名称/容器ID
docker restart -i 容器名称/容器ID
นักเทียบท่าไม่รองรับ โหมดการเรียกบรรทัดคำสั่ง เมื่อรันโปรเจ็กต์ ไม่สามารถใช้ฟังก์ชัน การอ่านคลิปบอร์ด และ การตรวจสอบคลิปบอร์ด ได้ตามปกติ หากมีความผิดปกติในฟังก์ชันอื่น ๆ โปรดรายงานกลับ!
3.12
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
เพื่อติดตั้งโมดูลที่โปรแกรมต้องการmain.py
เพื่อใช้งานโปรเจ็กต์รองรับโหมดการทำงานของบรรทัดคำสั่ง หากคุณต้องการดาวน์โหลดรูปภาพของงานกราฟิก คุณสามารถใช้โหมดนี้เพื่อตั้งค่าหมายเลขซีเรียลของรูปภาพที่จะดาวน์โหลด!
คุณสามารถใช้บรรทัดคำสั่ง เพื่ออ่านคุกกี้จากเบราว์เซอร์และเขียนลงในไฟล์กำหนดค่า!
ตัวอย่างคำสั่ง: python .main.py --browser_cookie Chrome --update_settings
พารามิเตอร์ประเภท bool
สนับสนุนการตั้งค่าโดยใช้ true
, false
, 1
, 0
, yes
, no
, on
หรือ off
(ไม่คำนึงถึงขนาดตัวพิมพ์)
เริ่มต้น: เรียกใช้คำสั่ง: python .main.py server
ปิดเครื่อง: กด Ctrl
+ C
เพื่อปิดเซิร์ฟเวอร์
อินเทอร์เฟซคำขอ: /xhs/
วิธีการขอ: POST
รูปแบบคำขอ: JSON
พารามิเตอร์คำขอ:
พารามิเตอร์ | พิมพ์ | ความหมาย | ค่าเริ่มต้น |
---|---|---|---|
URL | STR | ลิงก์ไปยังงานของ Xiaohongshu จะถูกแยกออกโดยอัตโนมัติและไม่รองรับหลายลิงก์ | ไม่มี |
ดาวน์โหลด | บูล | ไม่ว่าจะดาวน์โหลดไฟล์งานหรือไม่ การตั้งค่าเป็น true จะใช้เวลานานกว่านี้ | เท็จ |
ดัชนี | รายการ[int] | การดาวน์โหลดไฟล์รูปภาพที่มีหมายเลขซีเรียลที่ระบุจะมีผลกับงานกราฟิกเท่านั้น โดยจะไม่มีผลเมื่อตั้งค่าพารามิเตอร์ download เป็น false | โมฆะ |
ข้าม | บูล | ว่าจะข้ามการทำงานกับบันทึกการดาวน์โหลดหรือไม่ การตั้งค่านี้เป็น true จะไม่ส่งคืนข้อมูลสำหรับงานที่มีบันทึกการดาวน์โหลด | เท็จ |
ตัวอย่างรหัส:
def api_demo(): เซิร์ฟเวอร์ = "http://127.0.0.1:8000/xhs/" ข้อมูล = { "url": "https://www.xiaohongshu.com/explore/123456789", "ดาวน์โหลด": จริง "ดัชนี": [ 3, 6, 9, - - การตอบสนอง = คำขอโพสต์ (เซิร์ฟเวอร์ json = ข้อมูล) พิมพ์ (response.json())
หากเบราว์เซอร์ของคุณติดตั้งส่วนขยายเบราว์เซอร์ Tampermonkey คุณสามารถเพิ่มสคริปต์ผู้ใช้และสัมผัสกับคุณสมบัติของโปรเจ็กต์ได้โดยไม่ต้องดาวน์โหลดและติดตั้ง!
หลังจากติดตั้งสคริปต์เรียบร้อยแล้ว ให้เปิดหน้า Xiaohongshu ดูคำแนะนำเกี่ยวกับสคริปต์ และปฏิบัติตามคำแนะนำ
เคล็ดลับ: ใช้สคริปต์ผู้ใช้ XHS-Downloader เพื่อแยกลิงก์งานเป็นชุด และใช้โปรแกรม XHS-Downloader เพื่อดาวน์โหลดไฟล์งานเป็นกลุ่มโดยไม่มีลายน้ำ!
หากคุณมีความต้องการอื่น คุณสามารถโทรหรือแก้ไขโค้ดได้ตามความคิดเห็นใน main.py
!
ตัวอย่าง async def (): """ตั้งค่าพารามิเตอร์ผ่านโค้ด เหมาะสำหรับการพัฒนารอง""" # ลิงก์ตัวอย่าง 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 = "ดาวน์โหลด" # ชื่อของโฟลเดอร์จัดเก็บไฟล์งาน (สร้างขึ้นโดยอัตโนมัติ) ค่าเริ่มต้น: ดาวน์โหลด name_format = "ชื่องาน รายละเอียดงาน" user_agent = "" # ตัวแทนผู้ใช้ cookie = "" # คุกกี้เวอร์ชันเว็บ Xiaohongshu ไม่จำเป็นต้องเข้าสู่ระบบ พารามิเตอร์ทางเลือก สถานะการเข้าสู่ระบบมีผลกระทบต่อพร็อกซีการรวบรวมข้อมูล = ไม่มี # การหมดเวลาพร็อกซีเครือข่าย = 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 กับ XHS( work_path=งาน_เส้นทาง, โฟลเดอร์_ชื่อ=ชื่อโฟลเดอร์, name_format=name_format, user_agent=user_agent, คุกกี้ = คุกกี้ พร็อกซี=พร็อกซี หมดเวลา = หมดเวลา, ก้อน = ก้อน, max_retry=max_retry, record_data=บันทึก_ข้อมูล, image_format=รูปภาพ_รูปแบบ, โฟลเดอร์_โหมด=โฟลเดอร์_โหมด, ) เป็น xhs: # ใช้พารามิเตอร์ที่กำหนดเอง ดาวน์โหลด = True # ไม่ว่าจะดาวน์โหลดไฟล์งานหรือไม่ ค่าเริ่มต้น: False # ส่งคืนข้อมูลโดยละเอียดเกี่ยวกับงาน รวมถึงที่อยู่ดาวน์โหลด # ส่งคืนพจนานุกรมเปล่าเมื่อได้รับข้อมูลล้มเหลว พิมพ์(await xhs.extract(error_link, download, )) พิมพ์ (รอ xhs.extract (demo_link, ดาวน์โหลด, ดัชนี = [1, 2])) # รองรับการส่งผ่านการพิมพ์ลิงค์งานหลายอัน (รอ xhs.extract (multiple_links, ดาวน์โหลด, ))
โปรเจ็กต์นี้ใช้ pyperclip
เพื่อใช้ฟังก์ชันการอ่านคลิปบอร์ด โมดูลนี้จะแตกต่างกันไปในแต่ละระบบ
บน Windows ไม่จำเป็นต้องมีโมดูลเพิ่มเติม
บน Mac โมดูลนี้ใช้คำสั่ง pbcopy และ pbpaste ซึ่งควรมีมาพร้อมกับระบบปฏิบัติการ
บน Linux โมดูลนี้ใช้คำสั่ง xclip หรือ xsel ซึ่งควรมาพร้อมกับระบบปฏิบัติการ มิฉะนั้นให้เรียกใช้ "sudo apt-get install xclip" หรือ "sudo apt-get install xsel" (หมายเหตุ: xsel ดูเหมือนจะไม่ทำงานเสมอไป)
บนระบบ Linux อื่นๆ คุณต้องติดตั้งโมดูล qtpy หรือ PyQT5
ไฟล์ settings.json
ในไดเร็กทอรีรากของโปรเจ็กต์จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อรันเป็นครั้งแรก และพารามิเตอร์ที่กำลังรันบางตัวสามารถปรับแต่งได้
หากตั้งค่าพารามิเตอร์ไม่ถูกต้อง โปรแกรมจะใช้ค่าเริ่มต้นของพารามิเตอร์!
พารามิเตอร์ | พิมพ์ | ความหมาย | ค่าเริ่มต้น |
---|---|---|---|
งาน_เส้นทาง | STR | เส้นทางรูทการบันทึกข้อมูลงาน/ไฟล์ | เส้นทางรากของโครงการ |
โฟลเดอร์_ชื่อ | STR | ชื่อของโฟลเดอร์ที่เก็บไฟล์งาน | ดาวน์โหลด |
ชื่อ_รูปแบบ | STR | รูปแบบชื่อไฟล์งาน, ใช้ช่องว่างเพื่อแยกช่องต่างๆ ที่รองรับ:收藏数量 ,评论数量 ,分享数量 点赞数量 ,作品标签 ,作品ID ,作品标题 ,作品描述 ,作品类型 ,发布时间 ,最后更新时间 ,作者昵称 ,作者ID | 发布时间作者昵称作品标题 |
user_agent | STR | BrowserUserAgent | ตัวแทนผู้ใช้ Chrome ในตัว |
คุกกี้ | STR | คุกกี้เวอร์ชันเว็บของ Xiaohongshu ไม่จำเป็นต้องเข้าสู่ระบบ ไม่มีพารามิเตอร์ที่จำเป็น! | ไม่มี |
พร็อกซี | STR | ตั้งค่าพร็อกซีโปรแกรม | โมฆะ |
หมดเวลา | ภายใน | ขีดจำกัดการหมดเวลาของข้อมูลคำขอ หน่วย: วินาที | 10 |
ก้อน | ภายใน | เมื่อดาวน์โหลดไฟล์ ขนาดของบล็อกข้อมูลที่ได้รับจากเซิร์ฟเวอร์ในแต่ละครั้ง หน่วย: ไบต์ | 2097152(2 เมกะไบต์) |
max_retry | ภายใน | เมื่อการร้องขอข้อมูลล้มเหลว จำนวนครั้งสูงสุดในการลองใหม่ หน่วย: วินาที | 5 |
บันทึก_ข้อมูล | บูล | ไม่ว่าจะบันทึกข้อมูลงานเป็นไฟล์, รูปแบบการบันทึก: SQLite | เท็จ |
รูปภาพ_รูปแบบ | STR | รูปแบบการดาวน์โหลดไฟล์งานกราฟิกและข้อความ รองรับ: PNG , WEBP พารามิเตอร์นี้ส่งผลต่ออินเทอร์เฟซที่ใช้ในการดาวน์โหลดรูปภาพ และไม่ใช่รูปแบบรูปภาพคงที่! | PNG |
รูปภาพ_ดาวน์โหลด | บูล | สวิตช์ดาวน์โหลดไฟล์งานกราฟิก | จริง |
วิดีโอ_ดาวน์โหลด | บูล | สวิตช์ดาวน์โหลดไฟล์งานวิดีโอ | จริง |
สด_ดาวน์โหลด | บูล | สวิตช์ดาวน์โหลดไฟล์กราฟิก ข้อความ และภาพเคลื่อนไหว | เท็จ |
โฟลเดอร์_โหมด | บูล | จะจัดเก็บไฟล์ของแต่ละงานไว้ในโฟลเดอร์แยกหรือไม่ ชื่อโฟลเดอร์ควรสอดคล้องกับชื่อไฟล์ | เท็จ |
ดาวน์โหลด_บันทึก | บูล | ไม่ว่าจะบันทึก ID ของผลงานที่ดาวน์โหลดสำเร็จหรือไม่ หากเปิดใช้งาน โปรแกรมจะข้ามการดาวน์โหลดผลงานที่มีบันทึกที่มีอยู่โดยอัตโนมัติ | จริง |
ภาษา | STR | ตั้งค่าภาษาของโปรแกรมที่รองรับในปัจจุบัน: zh_CN , en_GB | zh_CN |
คำแนะนำอื่นๆ: ตัวอย่างการรับพารามิเตอร์ user_agent
ขอแนะนำอย่างยิ่งให้ตั้งค่าตามข้อมูลเบราว์เซอร์จริง!
เริ่มตั้งแต่เวอร์ชัน 2.2
หากไม่มีความผิดปกติในฟังก์ชันโปรเจ็กต์ ก็ไม่จำเป็นต้องประมวลผลคุกกี้เพิ่มเติม!
https://www.xiaohongshu.com/explore
F12
เพื่อเปิดเครื่องมือสำหรับนักพัฒนา网络
保留日志
cookie-name:web_session
ในช่องป้อนข้อมูล过滤
Fetch/XHR
网络
(หากไม่มีแพ็กเก็ต ให้ทำซ้ำขั้นตอนที่ 7)XHS-Downloader จะจัดเก็บ ID ของงานที่ดาวน์โหลดไว้ในฐานข้อมูล เมื่อดาวน์โหลดงานเดิมซ้ำๆ XHS-Downloader จะข้ามการดาวน์โหลดไฟล์ของงานโดยอัตโนมัติ (แม้ว่าไฟล์งานจะไม่มีอยู่ก็ตาม) -ดาวน์โหลดไฟล์งาน โปรดลบ ID งานที่เกี่ยวข้องในฐานข้อมูลก่อน จากนั้นใช้ XHS-Downloader เพื่อดาวน์โหลดไฟล์งาน!
ฟังก์ชันนี้เปิดใช้งานตามค่าเริ่มต้น หากปิดใช้งาน XHS-Downloader จะตรวจสอบว่ามีไฟล์อยู่หรือไม่ และข้ามการดาวน์โหลดหากมีไฟล์อยู่!
หาก XHS-Downloader มีประโยชน์สำหรับคุณ โปรดพิจารณาให้ ดาว นี้ ขอบคุณสำหรับการสนับสนุนของคุณ!
วีแชท | อาลีเพย์ |
---|---|
หากคุณต้องการ ลองพิจารณาให้ทุนสนับสนุนเพิ่มเติมสำหรับ XHS-Downloader !
หมายเหตุ: การแชทกลุ่ม QQ จำกัดอยู่เพียงการหารือเกี่ยวกับปัญหาการใช้งานโครงการ ห้ามมิให้เผยแพร่โฆษณาใด ๆ โดยเด็ดขาด และห้ามมิให้หารือเกี่ยวกับธุรกรรมของบัญชี ปริมาณการใช้บัญชี การสร้างรายได้จากปริมาณข้อมูล อุตสาหกรรมสีเทา และเนื้อหาอื่น ๆ ที่เกี่ยวข้องโดยเด็ดขาด!
โครงการโอเพ่นซอร์สอื่น ๆ ของผู้เขียน:
JetBrains สนับสนุนโครงการที่ได้รับการยอมรับจากชุมชนโอเพ่นซอร์สทั่วโลก และมอบใบอนุญาตฟรีสำหรับการพัฒนาที่ไม่ใช่เชิงพาณิชย์