[PYTHON] Téléchargez un grand nombre d'images sur Wordpress

J'avais besoin de télécharger beaucoup d'images (10 000 ou plus) sur wordpress, et j'ai essayé d'utiliser "Media UP FTP", mais j'ai eu une erreur probablement parce qu'il y en avait trop. En premier lieu, le chargement a pris trop de temps et je n'ai pas pu télécharger correctement. Par conséquent, j'ai décidé d'utiliser le navigateur avec python et de télécharger l'image sur Wordpress comme RPA. Affinger5 est utilisé pour le thème Wordpress. Je n'ai utilisé aucun autre thème, donc je ne sais pas si cela fonctionne dans d'autres environnements. Le navigateur utilisé est Chrome.


from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
from selenium.webdriver.common.keys import Keys
import glob
import os

#Fonction pour arrêter temporairement le fonctionnement du navigateur
def sleep(sleep_time):
    time.sleep(sleep_time)

#Connectez-vous à Wordpress.
driver = webdriver.Chrome()
wordpress_url = "URL de mon Wordpress"
driver.get(wordpress_url)
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "wp-submit")))
# ID/Entrez PASS
sleep(0.1)
ID = driver.find_element_by_id("user_login")
ID.send_keys("ID pour se connecter")
sleep(0.1)
password = driver.find_element_by_id("user_pass")
password.send_keys("Mot de passe pour se connecter")
sleep(0.1)
#Cliquez sur le bouton de connexion
login_button = driver.find_element_by_name("wp-submit")
login_button.click()
sleep(0.1)

#Passer à l'écran de publication
driver.get("URL de l'écran de publication")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "footer-upgrade")))
sleep(0.1)

#Aller au téléchargement multimédia
driver.get("URL")

#Spécifiez le dossier dans lequel les images sont enregistrées
#Spécifiez uniquement JPG cette fois
imgs = glob.glob(r"C:\img\*.jpg ")

#Code pour télécharger des images
#Avant de télécharger une image, vous devez suivre la même procédure pour télécharger l'image vous-même
#Puisque vous utilisez directement l'Explorateur, lorsque vous appuyez sur le bouton "Sélectionner un fichier", le dossier que vous souhaitez télécharger doit être ouvert.
for img in imgs:
    
    media = driver.find_element_by_id("plupload-browse-button")
    sleep(0.1)
    media.click()
    sleep(0.3)

    #Le nom de l'image est le même que l'image d'origine
    img_name = os.path.basename(img)

    #Copier et coller le nom de l'image
    pyperclip.copy(img_name)
    pgui.hotkey('ctrl', 'v')
    sleep(0.3)

    #Appuyez sur ENTRÉE pour sélectionner une image et fermer l'Explorateur.
    pgui.typewrite(['enter'])
    sleep(0.1)    

Vous ne pourrez pas utiliser votre ordinateur pendant l'exécution du code, car vous laissez simplement votre ordinateur faire le travail à votre place. De plus, vous aurez besoin du pilote Chrome pour utiliser le pilote Web, veuillez donc télécharger celui qui correspond à la version de Chrome que vous utilisez. Il est peut-être également nécessaire de définir des variables d'environnement. Je pense que d'autres personnes l'ont expliqué en détail, alors cherchez-le.

Recommended Posts

Téléchargez un grand nombre d'images sur Wordpress
TensorFlow Pour apprendre d'un grand nombre d'images ... ~ (presque) solution ~
TensorFlow Pour apprendre d'un grand nombre d'images ... (Problème non résolu) → 12/18 Résolu
Connectez un grand nombre de vidéos ensemble!
Convertissez un grand nombre de fichiers PDF en fichiers texte à l'aide de pdfminer
Organisez un grand nombre de fichiers dans des dossiers
J'ai écrit un script pour télécharger un plug-in WordPress
Je souhaite résoudre le problème de fuite de mémoire lors de la sortie d'un grand nombre d'images avec Matplotlib
Créer un ensemble de données d'images à utiliser pour la formation
Accélérez un grand nombre de requêtes simples dans MySQL
[Python] Générer de manière aléatoire un grand nombre de noms de personne en anglais
Télécharger un fichier sur Dropbox
Un outil pour suivre les affiches avec un grand nombre de likes sur instagram [25 minutes à 1 seconde]
Utilisez l'API pour modifier collectivement un grand nombre d'e-mails non lus dans Gmail à lire
Comment augmenter le nombre d'images de jeux de données d'apprentissage automatique
Scrapy-Redis est recommandé pour l'exploration d'un grand nombre de domaines
Renommer le numéro de série des images récupérées
L'exécution d'un grand nombre de Python3 Executor.submit peut consommer beaucoup de mémoire.
Comment créer une grande quantité de données de test dans MySQL? ??
[Django] Que faire quand il y a de nombreux champs dans le modèle que vous souhaitez créer
Nombre moyen maximum de visiteurs quotidiens (grand)
Utilisez shutil pour supprimer tous les dossiers avec un petit nombre de fichiers
Traitement ETL pour un grand nombre de fichiers GTFS Realtime (édition Python)
Faisons un noyau jupyter
[Python] Un programme qui calcule le nombre de chaussettes jumelées
[Python] Comment mettre n'importe quel nombre d'entrées standard dans la liste
Comment mettre un numéro de ligne au début d'un fichier CSV
Comment lire une vidéo tout en regardant le nombre d'images (Mac)
Résumé de la création d'un environnement LAMP + Wordpress avec Sakura VPS
Télécharger des images sur Google Drive avec Python
Let Code Day6 commençant à zéro "1342. Nombre d'étapes pour réduire un nombre à zéro"
Découvrez comment diviser uniformément un fichier avec un certain nombre de lignes
Comment compter le nombre d'éléments dans Django et sortir dans le modèle
Obtenez le nombre de tweets liés à un certain mot-clé à l'aide de l'API Twitter
Comment calculer la volatilité d'une marque
Convertissez les données avec la forme (nombre de données, 1) en (nombre de données,) avec numpy.
Convertir le «nombre» de date Excel en date / heure Python
Trouvez le nombre de jours dans un mois
Téléchargement anonyme d'images à l'aide de l'API Imgur (à l'aide de Python)
Télécharger des images sur S3 avec une interface graphique à l'aide de tkinter
Comment mettre en ligne sur un Drive partagé à l'aide de pydrive
Je souhaite télécharger une application Django sur heroku
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Consolider un grand nombre de fichiers CSV dans des dossiers avec python (données sans en-tête)
Je voulais collecter beaucoup d'images, j'ai donc essayé d'utiliser "google image download"
Un script qui peut effectuer des tests de résistance en fonction du nombre de cœurs CPU
Trouvez une ligne directrice pour le nombre de processus / threads à définir sur le serveur d'applications
Comment connaître le numéro de port du service xinetd
Je veux détecter des images de chats d'Instagram
Mémo connecté à HiveServer2 d'EMR avec python
Comment obtenir le nombre de chiffres en Python
Convertir un objet de tranche en liste de numéros d'index
Remarques sur l'utilisation d'AIST Spacon ABCI
Liste des endroits sur lesquels je suis tombé lors du téléchargement d'images à partir de Django
Un mémo pour comprendre visuellement l'axe des pandas.
Comment écrire un type liste / dictionnaire de Python3