Chinois simplifié | Anglais
Outil d'extraction de liens/de collecte de travaux de Xiaohongshu : extraire les publications de comptes, les collections, les likes et les liens de travail d'album ; extraire les liens de travail des résultats de recherche et les liens d'utilisateur ; collecter les informations de travail de Xiaohongshu ; extraire les adresses de téléchargement du travail de Xiaohongshu ;
Ce projet est entièrement gratuit et open source, sans aucune fonction payante, ne vous y trompez pas !
Le plan de développement et les progrès de XHS-Downloader peuvent être trouvés dans Projets
? Cliquez sur l'image pour regarder la vidéo de démonstration
https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXX
https://www.xiaohongshu.com/discovery/item/作品ID?xsec_token=XXX
https://xhslink.com/分享码
Prend en charge la saisie de plusieurs liens de travail à la fois, en utilisant des espaces pour séparer les liens ; le programme extraira automatiquement les liens valides sans traitement supplémentaire !
Il est recommandé d'utiliser le terminal Windows (terminal par défaut de Windows 11) pour exécuter le programme afin d'obtenir le meilleur effet d'affichage !
Si vous avez uniquement besoin de télécharger les fichiers de travail sans filigrane, il est recommandé de choisir programme en cours d'exécution ou Docker en cours d'exécution ; si vous avez d'autres besoins, il est recommandé de choisir le code source en cours d'exécution !
A partir de la version 2.2
, s'il n'y a pas d'anomalie dans le fonctionnement du projet, il n'est pas nécessaire de traiter des cookies en plus !
Les utilisateurs de Mac OS, Windows 10 et versions ultérieures peuvent accéder aux versions pour télécharger le package compressé du programme, le décompresser, ouvrir le dossier du programme et double-cliquer pour exécuter main
pour l'utiliser.
Remarque : Le fichier exécutable main
de la plate-forme Mac OS devra peut-être être démarré à partir de la ligne de commande du terminal ; en raison des limitations du périphérique, le fichier exécutable de la plate-forme Mac OS n'a pas été testé et sa disponibilité ne peut pas être garantie !
Si vous utilisez le programme de cette manière, le chemin de téléchargement du fichier par défaut est : ._internalDownload
; le chemin du fichier de configuration est : ._internalsettings.json
Dockerfile
pour créer l'imagedocker pull joeanamier/xhs-downloader
pour extraire l'imagedocker run -it joeanamier/xhs-downloader
docker run -it joeanamier/xhs-downloader python main.py server
docker start -i 容器名称/容器ID
docker restart -i 容器名称/容器ID
Docker ne prend pas en charge le mode d'appel en ligne de commande lors de l'exécution du projet. Les fonctions de lecture du presse-papiers et de surveillance du presse-papiers ne peuvent pas être utilisées normalement. S'il y a des anomalies dans d'autres fonctions, veuillez nous en informer.
3.12
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
pour installer les modules requis par le programmemain.py
pour utiliserLe projet prend en charge le mode de fonctionnement en ligne de commande. Si vous souhaitez télécharger des images d'œuvres graphiques, vous pouvez utiliser ce mode pour définir le numéro de série des images à télécharger !
Les cookies peuvent être lus depuis le navigateur et écrits dans le fichier de configuration à l'aide de la ligne de commande !
Exemple de commande : python .main.py --browser_cookie Chrome --update_settings
Les paramètres de type bool
prennent en charge la définition en utilisant true
, false
, 1
, 0
, yes
, no
, on
ou off
(insensible à la casse).
Démarrer : Exécuter la commande : python .main.py server
Arrêt : appuyez sur Ctrl
+ C
pour arrêter le serveur
Interface de requête : /xhs/
Méthode de requête : POST
Format de requête : JSON
Paramètres de la requête :
paramètre | taper | signification | valeur par défaut |
---|---|---|---|
URL | str | Les liens vers les œuvres de Xiaohongshu sont automatiquement extraits et les liens multiples ne sont pas pris en charge. | aucun |
télécharger | bouffon | Le fait de télécharger le fichier de travail ; le définir sur true prendra plus de temps. | FAUX |
indice | liste[int] | Le téléchargement du fichier image avec le numéro de série spécifié ne prendra effet que pour les œuvres graphiques ; il ne prendra pas effet lorsque le paramètre download est défini sur false | nul |
sauter | bouffon | S'il faut ignorer les travaux avec des enregistrements de téléchargement ; la définition sur true ne renverra pas les données pour les travaux avec des enregistrements de téléchargement. | FAUX |
Exemple de code :
par défaut api_demo() : serveur = "http://127.0.0.1:8000/xhs/" données = { "url": "https://www.xiaohongshu.com/explore/123456789", "télécharger" : Vrai, "index": [ 3, 6, 9, ], } réponse = requêtes.post (serveur, json = données) print(réponse.json())
Si l'extension de navigateur Tampermonkey est installée sur votre navigateur, vous pouvez ajouter des scripts utilisateur et découvrir les fonctionnalités du projet sans téléchargement ni installation !
Une fois le script installé avec succès, ouvrez la page Xiaohongshu, affichez les instructions du script et suivez les invites.
Astuce : utilisez le script utilisateur XHS-Downloader pour extraire les liens de travail par lots et utilisez le programme XHS-Downloader pour télécharger par lots des fichiers de travail sans filigrane !
Si vous avez d'autres besoins, vous pouvez appeler ou modifier le code selon les invites de commentaires dans main.py
!
exemple de définition asynchrone() : """Définir les paramètres via du code, adapté au développement secondaire""" # Exemple de lien 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}" # Objet d'instance work_path = "D:\" # Le chemin racine pour enregistrer les données/fichiers de travail, valeur par défaut : chemin racine du projet nom_dossier = "Télécharger" # Le nom du dossier de stockage des fichiers de travail (créé automatiquement), valeur par défaut : Télécharger name_format = "Titre du travail Description du travail" user_agent = "" # Agent utilisateur cookie = "" # Cookie de la version Web de Xiaohongshu, aucune connexion requise, paramètres facultatifs, l'état de connexion a un impact sur la collecte de données proxy = Aucun # Délai d'expiration du proxy réseau = 5 # Limite de délai d'expiration des données de demande, unité : secondes, valeur par défaut : 10 chunk = 1024 * 1024 * 10 # Lors du téléchargement d'un fichier, la taille du bloc de données obtenu du serveur à chaque fois, unité : octets max_retry = 2 # En cas d'échec de la demande de données, le nombre maximum de tentatives, unité : secondes, valeur par défaut : 5 record_data = False # S'il faut enregistrer les données de travail dans le fichier image_format = "WEBP" # Format de téléchargement de fichiers de travail graphiques et texte, prend en charge : PNG, WEBP dossier_mode = False # S'il faut stocker les fichiers de chaque œuvre dans un dossier séparé # asynchrone avec XHS() en tant que xhs : # pass # Utiliser les paramètres par défaut de manière asynchrone avec XHS( chemin_travail=chemin_travail, nom_dossier=nom_dossier, nom_format=nom_format, user_agent=user_agent, cookie=cookie, proxy=proxy, délai d'attente = délai d'attente, morceau = morceau, max_retry=max_retry, record_data=enregistrement_data, image_format=image_format, dossier_mode=dossier_mode, ) comme xhs : # Utiliser les paramètres personnalisés download = True # S'il faut télécharger le fichier de travail, valeur par défaut : False # Renvoie des informations détaillées sur le travail, y compris l'adresse de téléchargement # Renvoie un dictionnaire vide en cas d'échec de l'obtention des données print(await xhs.extract(error_link, download, )) print(attendre xhs.extract(demo_link, download, index=[1, 2])) # Prise en charge de la transmission de plusieurs liens de travail print(await xhs.extract(multiple_links, download, ))
Le projet utilise pyperclip
pour implémenter la fonction de lecture du presse-papiers. Ce module varie selon les systèmes.
Sous Windows, aucun module supplémentaire n'est requis.
Sur Mac, ce module utilise les commandes pbcopy et pbpaste, qui doivent être fournies avec le système d'exploitation.
Sous Linux, ce module utilise les commandes xclip ou xsel, qui doivent être fournies avec le système d'exploitation. Sinon, exécutez "sudo apt-get install xclip" ou "sudo apt-get install xsel" (remarque : xsel ne semble pas toujours fonctionner)
Sur les autres systèmes Linux, vous devez installer le module qtpy ou PyQT5.
Le fichier settings.json
dans le répertoire racine du projet est automatiquement généré lors de la première exécution et certains paramètres d'exécution peuvent être personnalisés.
Si une valeur de paramètre invalide est définie, le programme utilisera la valeur par défaut du paramètre !
paramètre | taper | signification | valeur par défaut |
---|---|---|---|
chemin_travail | str | Chemin racine de sauvegarde des données/fichiers de travail | Chemin racine du projet |
nom_dossier | str | Le nom du dossier où sont stockés les fichiers de travail | Télécharger |
nom_format | str | Format de nom de fichier de travail, utilisez des espaces pour séparer les champs Champs pris en charge :收藏数量 ,评论数量 ,分享数量 点赞数量 ,作品标签 ,作品ID ,作品标题 ,作品描述 ,作品类型 ,发布时间 ,最后更新时间 ,作者昵称 ,作者ID | 发布时间作者昵称作品标题 |
agent_utilisateur | str | NavigateurUserAgent | Agent utilisateur Chrome intégré |
cookies | str | Cookie de la version Web de Xiaohongshu, aucune connexion requise, aucun paramètre requis ! | aucun |
procuration | str | Proxy du programme d'installation | nul |
temps mort | int | Délai d'expiration des données de demande, unité : secondes | 10 |
gros morceau | int | Lors du téléchargement d'un fichier, la taille du bloc de données obtenu du serveur à chaque fois, unité : octets | 2097152(2 Mo) |
max_retry | int | En cas d'échec de la demande de données, nombre maximum de tentatives, unité : secondes | 5 |
enregistrement_données | bouffon | S'il faut enregistrer les données de travail dans un fichier, format d'enregistrement : SQLite | FAUX |
format_image | str | Format de téléchargement de fichiers de travail graphiques et textuels, supports : PNG , WEBP Ce paramètre affecte l'interface utilisée lors du téléchargement des images et ne constitue pas un format d'image fixe ! | PNG |
téléchargement_image | bouffon | Commutateur de téléchargement de fichiers de travail graphiques | vrai |
téléchargement_vidéo | bouffon | Commutateur de téléchargement de fichiers de travail vidéo | vrai |
live_download | bouffon | Commutateur de téléchargement de fichiers graphiques, textes et animations | FAUX |
mode_dossier | bouffon | S'il faut stocker les fichiers de chaque œuvre dans un dossier distinct ; le nom du dossier doit être cohérent avec le nom du fichier. | FAUX |
téléchargement_enregistrement | bouffon | S'il faut enregistrer l'ID des œuvres téléchargées avec succès. Si cette option est activée, le programme ignorera automatiquement le téléchargement des œuvres avec les enregistrements existants. | vrai |
langue | str | Définissez la langue du programme, actuellement prise en charge : zh_CN , en_GB | zh_CN |
Autres instructions : Exemple d'obtention du paramètre user_agent
; il est fortement recommandé de le paramétrer en fonction des informations réelles du navigateur !
A partir de la version 2.2
, s'il n'y a pas d'anomalie dans le fonctionnement du projet, il n'est pas nécessaire de traiter des cookies en plus !
https://www.xiaohongshu.com/explore
F12
pour ouvrir les outils de développement网络
保留日志
cookie-name:web_session
dans la zone de saisie过滤
Fetch/XHR
网络
(s'il n'y a pas de paquet, répétez l'étape 7)XHS-Downloader stockera l'ID de l'œuvre téléchargée dans la base de données Lors du téléchargement répété de la même œuvre, XHS-Downloader ignorera automatiquement le téléchargement du fichier de l'œuvre (même si le fichier de travail n'existe pas si vous souhaitez télécharger). le fichier de travail à nouveau, veuillez d'abord supprimer l'ID de travail correspondant dans la base de données, puis utilisez XHS-Downloader pour télécharger le fichier de travail !
Cette fonction est activée par défaut. Si elle est désactivée, XHS-Downloader vérifiera si le fichier existe et ignorera le téléchargement si le fichier existe !
Si XHS-Downloader vous est utile, pensez à lui donner une étoile . Merci pour votre soutien !
Alipay | |
---|---|
Si vous le souhaitez, envisagez de financer un support supplémentaire pour XHS-Downloader !
Remarque : le chat de groupe QQ se limite à discuter des problèmes d'utilisation du projet. Il est strictement interdit de publier des publicités, et il est strictement interdit de discuter des transactions de compte, du trafic du compte, de la monétisation du trafic, des industries grises et de tout autre contenu connexe !
Les autres projets open source de l'auteur :
JetBrains prend en charge des projets actifs reconnus par la communauté open source mondiale et fournit des licences gratuites pour le développement non commercial.