الصينية المبسطة |
أداة استخراج/جمع العمل من 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 والإصدارات الأحدث الانتقال إلى الإصدارات لتنزيل حزمة البرنامج المضغوطة وفك ضغطها وفتح مجلد البرنامج والنقر نقرًا مزدوجًا لتشغيل main
لاستخدامه.
ملاحظة: قد يلزم بدء تشغيل الملف main
القابل للتنفيذ لمنصة Mac OS من سطر الأوامر الطرفية؛ نظرًا لقيود الجهاز، لم يتم اختبار الملف القابل للتنفيذ لمنصة 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
لا يدعم Docker وضع استدعاء سطر الأوامر عند تشغيل المشروع، ولا يمكن استخدام وظائف قراءة الحافظة ومراقبة الحافظة بشكل طبيعي. إذا كان هناك أي خلل في الوظائف الأخرى، فيرجى الإبلاغ عنها!
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 | شارع | يتم استخراج الروابط إلى أعمال Xiaohongshu تلقائيًا ولا يتم دعم الروابط المتعددة. | لا أحد |
تحميل | منطقي | سيستغرق تنزيل ملف العمل وتعيينه على true مزيدًا من الوقت | خطأ شنيع |
فِهرِس | قائمة [كثافة العمليات] | لن يسري مفعول تنزيل ملف الصورة بالرقم التسلسلي المحدد إلا بالنسبة للأعمال الرسومية؛ ولن يسري مفعوله عند ضبط معلمة download على false | باطل |
يتخطى | منطقي | لن يؤدي تخطي إعداد الأعمال مع سجلات التنزيل إلى true إلى إرجاع البيانات للأعمال التي تحتوي على سجلات التنزيل | خطأ شنيع |
مثال الكود:
تعريف api_demo(): الخادم = "http://127.0.0.1:8000/xhs/" البيانات = { "url": "https://www.xiaohongshu.com/explore/123456789"، "تنزيل": صحيح، "فِهرِس": [ 3، 6, 9, ]، } الاستجابة = request.post(server, json=data) طباعة (response.json ())
إذا كان متصفحك يحتوي على ملحق متصفح Tampermonkey، فيمكنك إضافة نصوص المستخدم وتجربة ميزات المشروع دون تنزيل وتثبيت!
بعد تثبيت البرنامج النصي بنجاح، افتح صفحة Xiaohongshu، واعرض تعليمات البرنامج النصي، واتبع المطالبات.
نصيحة: استخدم برنامج المستخدم XHS-Downloader لاستخراج روابط العمل على دفعات، واستخدم برنامج XHS-Downloader لتنزيل ملفات العمل بدون علامات مائية!
إذا كانت لديك احتياجات أخرى، فيمكنك الاتصال بالرمز أو تعديله وفقًا لمطالبات التعليق في main.py
!
مثال غير متزامن (): """تعيين المعلمات من خلال التعليمات البرمجية، ومناسبة للتطوير الثانوي""" # نموذج الرابط error_link = "https://github.com/JoeanAmier/XHS_Downloader" رابط تجريبي = "https://www.xiaohongshu.com/explore/xxxxxxxxxx" روابط متعددة = f"{demo_link} {demo_link} {demo_link}" # كائن المثيلwork_path = "D:\" # المسار الجذر لحفظ بيانات/ملفات العمل، القيمة الافتراضية: مسار جذر المشروع Folder_name = "Download" # اسم مجلد تخزين ملف العمل (الذي تم إنشاؤه تلقائيًا)، القيمة الافتراضية: تحميل name_format = "عنوان العمل ووصف العمل" user_agent = "" # وكيل المستخدم ملف تعريف الارتباط = "" # ملف تعريف ارتباط إصدار الويب Xiaohongshu، لا يلزم تسجيل الدخول، معلمات اختيارية، حالة تسجيل الدخول لها تأثير على وكيل جمع البيانات = لا شيء # مهلة وكيل الشبكة = 5 # حد مهلة طلب البيانات، الوحدة: ثانية، القيمة الافتراضية: 10 chunk = 1024 * 1024 * 10 # عند تنزيل ملف، حجم كتلة البيانات التي تم الحصول عليها من الخادم في كل مرة، الوحدة: بايت max_retry = 2 # عند فشل طلب البيانات، الحد الأقصى لعدد مرات إعادة المحاولة، الوحدة: الثواني، القيمة الافتراضية : 5 Record_data = False # ما إذا كان سيتم حفظ بيانات العمل في الملف image_format = "WEBP" # تنسيق تنزيل ملف العمل الرسومي والنص، يدعم: PNG، WEBP Folder_mode = False # ما إذا كان سيتم تخزين ملفات كل عمل في مجلد منفصل # async مع XHS() كـ xhs: # pass # استخدم المعلمات الافتراضية غير المتزامنة مع XHS( Work_path=work_path, Folder_name=folder_name, name_format=name_format, user_agent=user_agent, ملف تعريف الارتباط = ملف تعريف الارتباط، الوكيل = الوكيل، مهلة = مهلة، قطعة = قطعة، max_retry=max_retry, Record_data=record_data, image_format=image_format, وضع المجلد = وضع المجلد، ) as xhs: # استخدم المعلمات المخصصة download = True # سواء كنت تريد تنزيل ملف العمل، القيمة الافتراضية: False # إرجاع معلومات مفصلة حول العمل، بما في ذلك عنوان التنزيل # إرجاع قاموس فارغ عند فشل الحصول على البيانات print(await xhs.extract(error_link, download, )) طباعة (في انتظار xhs.extract (demo_link، تنزيل، فهرس = [1، 2])) # دعم تمرير روابط عمل متعددة print(await xhs.extract(multiple_links, download, ))
يستخدم المشروع pyperclip
لتنفيذ وظيفة قراءة الحافظة. ستختلف هذه الوحدة باختلاف الأنظمة.
في نظام التشغيل Windows، لا توجد حاجة إلى وحدات إضافية.
في نظام التشغيل Mac، تستخدم هذه الوحدة أوامر pbcopy وpbpaste، والتي يجب توفيرها مع نظام التشغيل.
في Linux، تستخدم هذه الوحدة أوامر xclip أو xsel، والتي يجب توفيرها مع نظام التشغيل. بخلاف ذلك، قم بتشغيل "sudo apt-get install xclip" أو "sudo apt-get install xsel" (ملاحظة: يبدو أن xsel لا يعمل دائمًا)
في أنظمة Linux الأخرى، تحتاج إلى تثبيت وحدة qtpy أو PyQT5.
يتم إنشاء ملف settings.json
الموجود في الدليل الجذر للمشروع تلقائيًا عند التشغيل لأول مرة، ويمكن تخصيص بعض معلمات التشغيل.
إذا تم تعيين قيمة معلمة غير صالحة، فسيستخدم البرنامج القيمة الافتراضية للمعلمة!
المعلمة | يكتب | معنى | القيمة الافتراضية |
---|---|---|---|
مسار العمل | شارع | بيانات العمل / مسار حفظ الملف الجذر | مسار جذر المشروع |
Folder_name | شارع | اسم المجلد الذي تم تخزين ملفات العمل فيه | تحميل |
name_format | شارع | تنسيق اسم ملف العمل، استخدم المسافات لفصل الحقول المدعومة:收藏数量 ،评论数量 ،分享数量 点赞数量 ،作品标签 ،作品ID ،作品标题 ،作品描述 ،作品类型 ،发布时间 ،最后更新时间 ،作者昵称 ،作者ID | 发布时间作者昵称作品标题 |
user_agent | شارع | BrowserUserAgent | وكيل مستخدم Chrome المدمج |
ملفات تعريف الارتباط | شارع | ملف تعريف ارتباط إصدار الويب Xiaohongshu، لا يلزم تسجيل الدخول، ولا توجد معلمات مطلوبة! | لا أحد |
الوكيل | شارع | وكيل برنامج الإعداد | باطل |
نفذ الوقت | كثافة العمليات | حد مهلة طلب البيانات، الوحدة: ثانية | 10 |
قطعة | كثافة العمليات | عند تنزيل ملف، حجم كتلة البيانات التي يتم الحصول عليها من الخادم في كل مرة، الوحدة: بايت | 2097152(2 ميجابايت) |
max_retry | كثافة العمليات | عند فشل طلب البيانات، الحد الأقصى لعدد مرات إعادة المحاولة، الوحدة: ثانية | 5 |
Record_data | منطقي | ما إذا كان سيتم حفظ بيانات العمل في ملف، أو تنسيق الحفظ: SQLite | خطأ شنيع |
image_format | شارع | تنسيق تنزيل ملفات العمل الرسومية والنصية، يدعم: PNG ، WEBP تؤثر هذه المعلمة على الواجهة المستخدمة عند تنزيل الصور، وهي ليست تنسيق صورة ثابتًا! | PNG |
image_download | منطقي | مفتاح تنزيل ملف العمل الجرافيكي | حقيقي |
video_download | منطقي | مفتاح تنزيل ملف عمل الفيديو | حقيقي |
Live_download | منطقي | مفتاح تنزيل ملفات الرسوم والنص والرسوم المتحركة | خطأ شنيع |
Folder_Mode | منطقي | ما إذا كان سيتم تخزين ملفات كل عمل في مجلد منفصل؛ يجب أن يكون اسم المجلد متوافقًا مع اسم الملف | خطأ شنيع |
download_record | منطقي | ما إذا كان سيتم تسجيل معرف الأعمال التي تم تنزيلها بنجاح أم لا. إذا تم تشغيله، فسيقوم البرنامج تلقائيًا بتخطي تنزيل الأعمال مع السجلات الموجودة. | حقيقي |
لغة | شارع | قم بتعيين لغة البرنامج المدعومة حاليًا: 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 بتخزين معرف العمل الذي تم تنزيله في قاعدة البيانات عند تنزيل نفس العمل بشكل متكرر، سيقوم XHS-Downloader تلقائيًا بتخطي تنزيل ملف العمل (حتى إذا كان ملف العمل غير موجود). ملف العمل مرة أخرى، يرجى حذف معرف العمل المقابل في قاعدة البيانات أولاً، ثم استخدم XHS-Downloader لتنزيل ملف العمل!
يتم تمكين هذه الوظيفة افتراضيًا إذا تم تعطيلها، فسيقوم XHS-Downloader بالتحقق من وجود الملف وتخطي التنزيل إذا كان الملف موجودًا!
إذا كان XHS-Downloader مفيدًا لك، فيرجى التفكير في منحه نجمة . شكرًا لك على دعمك!
وي شات | أليباي |
---|---|
إذا كنت ترغب في ذلك، فكر في تمويل دعم إضافي لبرنامج XHS-Downloader !
ملاحظة: تقتصر دردشة مجموعة QQ على مناقشة مشكلات استخدام المشروع، ويُمنع منعا باتا نشر أي إعلانات، ويمنع منعا باتا مناقشة أي معاملات حسابية، وحركة مرور الحساب، وتحقيق الدخل من حركة المرور، والصناعات الرمادية والمحتويات الأخرى ذات الصلة!
مشاريع المؤلف مفتوحة المصدر الأخرى:
تدعم JetBrains المشاريع النشطة المعترف بها من قبل المجتمع العالمي مفتوح المصدر وتوفر تراخيص مجانية للتطوير غير التجاري.