Ich musste eine große Anzahl von Bildern (10.000 oder mehr) auf WordPress hochladen und habe versucht, "Media UP FTP" zu verwenden, aber ich habe wahrscheinlich einen Fehler erhalten, weil zu viele vorhanden waren. Erstens dauerte das Laden zu lange und ich konnte nicht richtig hochladen. Aus diesem Grund habe ich beschlossen, den Browser mit Python zu betreiben und das Bild wie RPA auf Wordpress hochzuladen. Affinger5 wird für das Wordpress-Thema verwendet. Ich habe kein anderes Thema verwendet, daher weiß ich nicht, ob es in anderen Umgebungen funktioniert. Der verwendete Browser ist 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
#Funktion zum vorübergehenden Stoppen des Browserbetriebs
def sleep(sleep_time):
time.sleep(sleep_time)
#Melden Sie sich bei Wordpress an.
driver = webdriver.Chrome()
wordpress_url = "URL meines Wordpress"
driver.get(wordpress_url)
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "wp-submit")))
# ID/Geben Sie PASS ein
sleep(0.1)
ID = driver.find_element_by_id("user_login")
ID.send_keys("ID zum Anmelden")
sleep(0.1)
password = driver.find_element_by_id("user_pass")
password.send_keys("Passwort zum Anmelden")
sleep(0.1)
#Klicken Sie auf die Schaltfläche Anmelden
login_button = driver.find_element_by_name("wp-submit")
login_button.click()
sleep(0.1)
#Wechseln Sie zum Buchungsbildschirm
driver.get("Bildschirm-URL posten")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "footer-upgrade")))
sleep(0.1)
#Gehen Sie zum Medien-Upload
driver.get("URL")
#Geben Sie den Ordner an, in dem die Bilder gespeichert werden
#Geben Sie diesmal nur JPG an
imgs = glob.glob(r"C:\img\*.jpg ")
#Code zum Hochladen von Bildern
#Bevor Sie ein Bild hochladen, müssen Sie das gleiche Verfahren ausführen, um das Bild selbst hochzuladen
#Da Sie den Explorer direkt bedienen, muss der Ordner, den Sie hochladen möchten, geöffnet sein, wenn Sie auf die Schaltfläche "Datei auswählen" klicken.
for img in imgs:
media = driver.find_element_by_id("plupload-browse-button")
sleep(0.1)
media.click()
sleep(0.3)
#Der Name des Bildes ist der gleiche wie das Originalbild
img_name = os.path.basename(img)
#Kopieren Sie den Bildnamen und fügen Sie ihn ein
pyperclip.copy(img_name)
pgui.hotkey('ctrl', 'v')
sleep(0.3)
#Drücken Sie die EINGABETASTE, um ein Bild auszuwählen und den Explorer zu schließen.
pgui.typewrite(['enter'])
sleep(0.1)
Sie können Ihren Computer nicht verwenden, während der Code ausgeführt wird, da Sie nur Ihren Computer die Arbeit für Sie erledigen lassen. Außerdem benötigen Sie den Chrome-Treiber, um den Web-Treiber verwenden zu können. Laden Sie daher den Treiber herunter, der der von Ihnen verwendeten Chrome-Version entspricht. Möglicherweise müssen auch Umgebungsvariablen festgelegt werden. Ich denke, andere Leute haben es ausführlich erklärt, also suchen Sie bitte danach.
Recommended Posts