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