Automatische Veröffentlichung einer Webdesign-Website mit Python + Selen (1) Umgebungskonstruktion

Überblick

Motivation

Ich beschloss, im Zusammenhang mit meinem Nebenjob eine Website für Webdesign-Galerien zu erstellen, die sich auf Behandlungskliniken mit WordPress spezialisiert hat. Es ist jedoch sehr mühsam, die Aufnahme für das Bild der Galerieseite zu speichern und jedes Mal auf WordPress zu aktualisieren. Also habe ich nach dem Studium von Python eine automatische Posting-Umgebung erstellt. Da es lange dauern wird, werde ich es mehrmals posten.

\ * Das automatische Posten bezieht sich hier auf das Ausführen eines Python-Skripts auf dem Terminal, das Erstellen von Screenshots, das Erstellen von Post-Text, das Anmelden bei worpdress und das Posten.

Annahme

Inhalt

  1. Umweltbau
  2. Nehmen Sie ein Screen Capture-Selen
  3. Bildbeschneiden und Komprimieren-PIL, Tinypng
  4. Erstellen einer CSV zum Posten von --bs4
  5. Auto Post-Selen

Die eigentliche Galerie-Site ist hier.

Ordnerstruktur

image_cap
├── cap.py #Capture speichern, CSV-Skript schreiben
├── images #Wo soll das aufgenommene Bild gespeichert werden?
├── min-images #Wo soll das komprimierte aufgenommene Bild gespeichert werden?
├── list.txt #Galerie-Rufen Sie die URL der Site ab, zu der Sie hinzufügen möchten
├── up-list.csv #CSV für Massenbuchung
├── upload.py #Skript für WordPress-Posting
├── setting.config #Einstellungen wie Anmelde-ID, Kennwort und Bildverzeichnispfad

Der Quellcode wird vorerst von github verwaltet. Bitte klicken Sie auf hier.

1. Umweltbau

Lokale Einstellungen

Installieren Sie Selen

Software zum programmgesteuerten Ausführen des Webbrowsers zum Erfassen von Aufnahmen usw. Es scheint hauptsächlich zum Testen von Websites verwendet zu werden.

$ pip install selenium

Laden Sie chromewebdriver herunter

Ich möchte dieses Mal Chrome verwenden, also lade es von Homebrew herunter.

$ brew install chromedriver
$ which chromedriver 
  usr/local/bin/chromedriver #Stellen Sie dies als Selenpass ein

Installation von beautifulsoup4

Es wird verwendet, um den Titel der veröffentlichten Site durch Scraping abzurufen.

$ pip install beautifulsoup4

Installation von tinify

So verwenden Sie die tinypng-API für die Bildkomprimierung Der Beitrag von hier war sehr hilfreich. Stellen Sie auch den API-SCHLÜSSEL ein.

$ pip install tinify

lxml Installation

Installiert, um lxml als HTML-Parser zu verwenden. Um ehrlich zu sein, weiß ich nicht, was der Parser tun wird. .. Schweiß

pip install lxml

Ich habe auf [hier] verwiesen (http://qiita.com/itkr/items/513318a9b5b92bd56185).

Einstellungsdatei lesen

Ich habe den ConfigParser von Python verwendet, um Variablen wie die Anmelde-ID und den Dateipfad zusammenzustellen, um zukünftige Korrekturen zu vereinfachen. Wir werden dies im folgenden Code verwenden.

setting.config


[CAPTURE] #Erfasster Bildpfad
img_pass = /cap_git/images
min_img_pass = /cap_git/min_image

[RESIZE] #tinypng API-Schlüssel
tiny_key = hogehoge

[WRITE] #CSV-Schreibeinstellungen
init_row = post_title,post_category,capture,url,post_type,post_status
post_type = post
post_status = publish
up_address = http://test/wp-content/themes/test/dist/images/

[UPLOAD] #Wordpress-Anmeldeinformationen usw.
login_url = http://test/wp-login.php
login_id = hoge
login_pass = hogehoge
import_url = http://test/wp-admin/admin.php?import=csv
img_up_pass = http://test/wp-content/themes/sage-8.5/dist/images

Laden Sie also in cap.py die folgenden Variablen

cap.py


#Einstellungsdatei lesen
conf = configparser.ConfigParser()
conf.read('setting.config')

#API-Schlüsseleinstellung
tinify.key = conf['RESIZE']['tiny_key']
#Dir mit Bild vor der Verkleinerung
FROM_DIR = conf['CAPTURE']['img_pass']
#Dir, um das verkleinerte Bild zu setzen
MIN_DIR = conf['CAPTURE']['min_img_pass']
#Elemente einstellen
INIT_ROW = list(conf['WRITE']['init_row'].split(','))
#Bild URL
IM_ADRRESS = conf['WRITE']['up_address']
#Zu setzender Beitragstyp
POST_TYPE = conf['WRITE']['post_type']
POST_STATUS = conf['WRITE']['post_status']

Modulkonfiguration mit configparser.ConfigParser () Lesen Sie dies, indem Sie den Pfad der confg-Datei in conf.reade angeben. Da auf den Wert in einem wörterbuchartigen Format zugegriffen werden kann, wird er in die Variable eingefügt.

Wordpress-Seiteneinstellungen

Fügen Sie das Really Simple CSV Importer Plugin hinzu

Für Massenbuchungen in CSV. Ich habe auf [hier] verwiesen (https://liginc.co.jp/web/wp/plug-in/58046). Darüber hinaus legt Advanced Custom Fields auch benutzerdefinierte Felder für die Buchung fest.

Teil 2 Speichern Sie die Bildschirmaufnahme weiter

Recommended Posts

Automatische Veröffentlichung einer Webdesign-Website mit Python + Selen (1) Umgebungskonstruktion
Kratzen Sie die reCAPTCHA-Site jeden Tag automatisch ab (1/7: Aufbau der Python-Umgebung)
Automatischer Betrieb von Chrome mit Python + Selen + Pandas
Poetry-Virtualenv-Umgebungskonstruktion mit Centos-Sclo-Rh-Python ~ Hinweise
Umgebungskonstruktion von Python2 & 3 (OSX)
Umgebungskonstruktion von Python und OpenCV
Beginnen Sie mit Python! ~ ① Umweltbau ~
Python3-Umgebungskonstruktion mit pyenv-virtualenv (CentOS 7.3)
pytorch @ python3.8 Umgebungskonstruktion mit pipenv
Webanwendung mit Python + Flask (unter Verwendung von VScode) # 1 - Aufbau einer virtuellen Umgebung-
[Ubuntu 18.04] Erstellen Sie eine Python-Umgebung mit pyenv + pipenv
Pferderennseite Web Scraping mit Python
Üben des Web-Scrapings mit Python und Selen
Kommen wir zu Python # 0 (Umgebungskonstruktion)
Erstellen einer Umgebung für Flask / MySql / Apache / mod_wsgi / virtualenv mit Redhat7 (Python2.7) November 2020
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (1) [Umgebungskonstruktion]
Sammeln von Informationen von Twitter mit Python (Umgebungskonstruktion)
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
[Hinweis] Exportieren Sie das HTML der Site mit Python.
Umgebungskonstruktion (Python)
Verwenden Sie mit pyenv mehrere Versionen der Python-Umgebung
Installation von Python 3 und Flask [Zusammenfassung der Umgebungskonstruktion]
[Python] Webanwendung von 0! Hands-on (1) -Design, DB-Konstruktion-
Python-Umgebungskonstruktion
Python - Umgebungskonstruktion
Aufbau einer Python-Umgebung
Erste Python ① Umgebungskonstruktion mit Pythonbrew & Hello World !!
Von der Python-Umgebungskonstruktion zur virtuellen Umgebungskonstruktion mit Anaconda
Automatische Anmeldung bei ServiceNow mit Selenium Web Driver
Aufbau einer virtuellen Umgebung mit Docker + Flask (Python) + Jupyter-Notebook
Empfehlung zum Erstellen einer tragbaren Python-Umgebung mit conda
[Python] OpenCV-Umgebungskonstruktion mit Docker (cv2.imshow () funktioniert auch)
Automatisches Folgen auf Twitter mit Python und Selen! (RPA)
Aufbau einer Datenanalyseumgebung mit Python (IPython Notebook + Pandas)
Erstellen von BINGO "Web Tools" mit Python (Inhaltsverzeichnis)
Aufbau einer QGIS3 Python-Plug-In-Entwicklungsumgebung mit VSCode (macOS)
Homebrew Python Umgebung Konstruktion
Aufbau einer Python-Entwicklungsumgebung
Screenshot mit Selen (Python Edition)
Python-Umgebung mit Docker-Compose
python2.7 Konstruktion der Entwicklungsumgebung
Schaben mit Selen [Python]
Python-Umgebungskonstruktion @ Win7
OpenJTalk unter Windows 10 (Sprechen Sie Japanisch mit Python aus der Umgebungskonstruktion)
Vereinheitlichen Sie die Umgebung des Python-Entwicklungsteams, beginnend mit Poetry
[Aufbau einer LDAP-Umgebung: 7] Hinzufügen / Suchen / Ändern / Löschen von Benutzern mit Python
Erstellen einer lokalen Python-Entwicklungsumgebung Teil 2 (pyenv-virtualenv, Pip-Nutzung)
Bis zur Veröffentlichung von Python [Django] de Web Service [Umgebungskonstruktion]
Der Höhepunkt der REST + Normal Site-Konstruktion mit Flask, Eve
Automatischer Betrieb von Chrome mit Python + Selen + Pandas
Python + Anaconda + Pycharm-Umgebungskonstruktion
Web Scraping mit Python + JupyterLab
Schaben mit Selen in Python
Schaben mit Selen + Python Teil 1