Упрощенный китайский |
Инструмент извлечения/сбора ссылок 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 (терминал Windows 11 по умолчанию) для достижения наилучшего эффекта отображения!
Если вам нужно загрузить только рабочие файлы без водяных знаков, рекомендуется выбрать работающую программу или работающий Docker . Если у вас есть другие потребности, рекомендуется выбрать работающий исходный код !
Начиная с версии 2.2
, если в работе проекта нет отклонений, дополнительно обрабатывать файлы cookie нет необходимости!
Пользователи 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
чтобы использоватьПроект поддерживает режим работы через командную строку. Если вы хотите загрузить несколько изображений графических работ, вы можете использовать этот режим для установки серийного номера загружаемых изображений!
Файлы cookie можно прочитать из браузера и записать в файл конфигурации с помощью командной строки!
Пример команды: 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, ], } ответ = запросы.post(сервер, json=данные) печать(response.json())
Если в вашем браузере установлено расширение Tampermonkey, вы можете добавлять пользовательские скрипты и пользоваться возможностями проекта без скачивания и установки!
После успешной установки скрипта откройте страницу Xiaohongshu, просмотрите инструкции скрипта и следуйте подсказкам.
Совет: используйте пользовательский скрипт XHS-Downloader для пакетного извлечения рабочих ссылок и используйте программу XHS-Downloader для пакетной загрузки рабочих файлов без водяных знаков!
Если у вас есть другие потребности, вы можете вызвать или изменить код в соответствии с подсказками комментариев в main.py
!
пример асинхронного определения(): """Установите параметры через код, подходящий для вторичной разработки""" # Пример ссылки 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:\" # Корневой путь для сохранения рабочих данных/файлов, значение по умолчанию: корневой путь проекта имя_папки = "Загрузить" # Имя папки хранения рабочих файлов (создается автоматически), значение по умолчанию: Скачать name_format = "Название работы Описание работы" user_agent = "" # Пользовательский агент cookie = "" # Файл cookie веб-версии Xiaohongshu, вход в систему не требуется, дополнительные параметры, статус входа влияет на сбор данных. Прокси = Нет # Тайм-аут сетевого прокси = 5 # Ограничение времени ожидания запроса данных, единица измерения: секунды, значение по умолчанию: 10 chunk = 1024 * 1024 * 10 # При загрузке файла размер блока данных, получаемого с сервера каждый раз, единица измерения: байты max_retry = 2 # При неудачном запросе данных, максимальное количество повторов, единица измерения: секунды, значение по умолчанию : 5 Record_data = False # Сохранять ли рабочие данные в файл image_format = "WEBP" # Формат загрузки графических и текстовых рабочих файлов, поддерживает: PNG, WEBP folder_mode = False # Следует ли хранить файлы каждой работы в отдельной папке # асинхронно с XHS() как xhs: # pass # Использовать параметры по умолчанию, асинхронно с XHS( рабочий_путь = рабочий_путь, имя_папки=имя_папки, name_format = name_format, user_agent = user_agent, печенье = печенье, прокси = прокси, тайм-аут = тайм-аут, кусок = кусок, max_retry=max_retry, запись_данных = данные_записи, image_format = image_format, режим_папки=режим_папки, ) 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, ))
В проекте используется pyperclip
для реализации функции чтения из буфера обмена. Этот модуль будет различаться в разных системах.
В Windows никаких дополнительных модулей не требуется.
На Mac этот модуль использует команды pbcopy и pbpaste, которые должны быть предоставлены операционной системой.
В Linux этот модуль использует команды xclip или xsel, которые должны быть предоставлены операционной системой. В противном случае запустите «sudo apt-get install xclip» или «sudo apt-get install xsel» (примечание: xsel не всегда работает).
В других системах Linux вам необходимо установить модуль qtpy или PyQT5.
Файл settings.json
в корневом каталоге проекта автоматически создается при первом запуске, и некоторые параметры запуска можно настроить.
Если установлено неверное значение параметра, программа будет использовать значение параметра по умолчанию!
параметр | тип | значение | значение по умолчанию |
---|---|---|---|
рабочий_путь | ул. | Корневой путь сохранения рабочих данных/файлов | Корневой путь проекта |
имя_папки | ул. | Имя папки, в которой хранятся рабочие файлы | Скачать |
имя_формат | ул. | Формат имени рабочего файла, используйте пробелы для разделения полей. Поддерживаемые поля:收藏数量 ,评论数量 ,分享数量 点赞数量 ,作品标签 ,作品ID ,作品标题 ,作品描述 ,作品类型 ,发布时间 ,最后更新时间 ,作者昵称 ,作者ID | 发布时间作者昵称作品标题 |
user_agent | ул. | БраузерПользовательАгент | Встроенный пользовательский агент Chrome. |
печенье | ул. | Файл cookie веб-версии Xiaohongshu, вход в систему не требуется, параметры не обязательны! | никто |
прокси | ул. | Настройка прокси программы | нулевой |
тайм-аут | интервал | Ограничение таймаута запроса данных, единица измерения: секунды | 10 |
кусок | интервал | При загрузке файла размер блока данных, получаемого каждый раз с сервера, единица: байт | 2097152(2 МБ) |
max_retry | интервал | При неудачном запросе данных максимальное количество повторов, единица измерения: секунды. | 5 |
запись_данных | логическое значение | Сохранять ли рабочие данные в файл, формат сохранения: SQLite | ЛОЖЬ |
image_format | ул. | Формат загрузки графических и текстовых рабочих файлов, поддержка: PNG , WEBP Этот параметр влияет на интерфейс, используемый при загрузке изображений, и не является фиксированным форматом изображений! | PNG |
image_download | логическое значение | Переключатель загрузки графического рабочего файла | истинный |
video_download | логическое значение | Переключатель загрузки рабочих видеофайлов | истинный |
live_download | логическое значение | Переключатель загрузки графических, текстовых и анимационных файлов | ЛОЖЬ |
режим_папки | логическое значение | Хранить ли файлы каждого произведения в отдельной папке, имя папки должно соответствовать имени файла; | ЛОЖЬ |
download_record | логическое значение | Записывать ли идентификатор успешно скачанных произведений. Если включено, программа будет автоматически пропускать загрузку произведений с существующими записями. | истинный |
язык | ул. | Установите язык программы, поддерживаемый на данный момент: zh_CN , en_GB | zh_CN |
Прочие инструкции: Пример получения параметра user_agent
, настоятельно рекомендуется устанавливать его в соответствии с актуальной информацией браузера!
Начиная с версии 2.2
, если в работе проекта нет отклонений, дополнительно обрабатывать файлы cookie нет необходимости!
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 поддерживает активные проекты, признанные мировым сообществом открытого исходного кода, и предоставляет бесплатные лицензии для некоммерческой разработки.