Es ist eine kleine Anwendung des Browser-Automatisierungssystems.
[PaintsChainer -Line Drawing Automatic Colouring Service-] Arbeiten Sie mit Selen, um die Bilder im angegebenen Verzeichnis ohne Hinweise einzufärben.
Zuerst baute ich mit Phantomjs, aber einen Tag nachdem ich angefangen hatte zu bauen
Von 10:30 Uhr am 27. Juni bis 16:00 Uhr am 28. Juni, japanische Zeit, gab es ein Problem, dass Paints Chainer in einigen Browsern nicht automatisch eingefärbt werden konnte. Wir möchten uns bei den Nutzern bedanken, die diesbezüglich Anfragen gestellt haben. Derzeit haben wir restauriert.
Ich habe zu Chrome gewechselt, weil eine Änderung einen anderen JS-Fehler als Chrome verursacht hat. Ich dachte, ich müsste umsteigen, also fürchte ich, ich bin unglücklich. Es war auch einfach, auf die stabile Version von Chrome umzusteigen, die 59 wurde.
# coding:utf-8
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from pyquery import PyQuery as pq
import sys
import glob
import os
import time
import urllib
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
# https://stackoverflow.com/questions/12093940/reading-files-in-a-particular-order-in-python
import re
numbers = re.compile(r'(\d+)')
def numericalSort(value):
parts = numbers.split(value)
parts[1::2] = map(int, parts[1::2])
return parts
# https://stackoverflow.com/questions/43813170/using-selenium-webdriver-to-wait-the-attribute-of-element-to-change-value
class wait_for_the_attribute_value(object):
def __init__(self, locator, attribute, value):
self.locator = locator
self.attribute = attribute
self.value = value
def __call__(self, driver):
try:
element_attribute = EC._find_element(driver, self.locator).get_attribute(self.attribute)
return (element_attribute != self.value)
except StaleElementReferenceException:
return False
if __name__ == '__main__':
args = sys.argv
if (len(args) < 2):
quit('required directory path')
original_dir = os.path.abspath(args[1])
color_dir = original_dir + '_color'
try:
os.mkdir(color_dir)
except OSError:
pass
try:
# driver = webdriver.PhantomJS()
options = Options()
# options.binary_location = '' /usr/bin/Wird nicht benötigt, da ich die Binärdatei nach verschoben habe
options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://paintschainer.preferred.tech/index_ja.html')
#Ich denke nicht, dass es notwendig ist, aber es stört den Screenshot zur Überprüfung des Vorgangs, also schließen Sie den Vertragsbildschirm
close = driver.find_element_by_css_selector('.close')
close.click()
for path in sorted(glob.glob(original_dir + '/*'), key=numericalSort):
dummy, ext = os.path.splitext(path)
#Transparente PNG-Maßnahmen, die TODO nicht unterstützen Groß- und Kleinschreibung?
if (ext != '.jpg' and ext != '.jpeg' and ext != '.png'):
continue
driver.execute_script("document.getElementById('load_line_file').style.display = '';")
elm = driver.find_element_by_id("load_line_file")
elm.send_keys(os.path.abspath( path ))
src = driver.find_element_by_id("output").get_attribute('src')
WebDriverWait(driver, 60 * 5).until(wait_for_the_attribute_value((By.ID, 'output'), 'src', src))
output = driver.find_element_by_id("output").get_attribute('src')
urllib.urlretrieve(output, color_dir + '/' + os.path.basename(path))
time.sleep(10)
except TimeoutException as e:
print(e)
driver.save_screenshot('./timeout.png')
except Exception as e:
print(e)
driver.save_screenshot('./exception.png')
finally:
driver.quit()
Ich kann immer noch nicht sauber schreiben ...
Mit PaintsChainer (und der abgebildeten Datei) können Sie farbige Cartoons lesen! Das Ergebnis des Durchblicks. Es war nicht sehr gut. Die Farbe ist vage, aber die Schrift ist unscharf.
Eigentlich wollte ich ein Farbbeispiel für "Gib mir einen Blackjack" veröffentlichen, aber ich hörte auf, weil ich dachte, es sei mühsam, die E-Mail nach der Veröffentlichung kurz zuvor zu kontaktieren. Wenn Sie sich weigern, handelt es sich um eine wirklich lockere und gute Lizenz, da Sie erst nachträglich Kontakt aufnehmen und den Titel und den Namen des Autors anzeigen müssen. Die Manga-Daten "Gib mir einen Blackjack" stehen allen kostenlos zur sekundären Verwendung zur Verfügung. ]
Ich denke, dass "Pseudo-Vierfarben-Druck" -Werkzeuge wie Cartoon-Betrachter ein einheitlicheres Gefühl haben. Wenn Sie unhöflich sind, ist es eher wie ein Shintosha-System als das fertige Manuskript? Ein Cartoon, der näher an einer Strichzeichnung liegt, ist möglicherweise besser geeignet.
Das Lernziel ist in erster Linie anders. Die Technik der Farbseite des Cartoons scheint sich jedoch von der des Monochroms zu unterscheiden, und es scheint schwierig zu sein, Proben zu sammeln. Und wenn Sie das können, würden Sie sich nicht die Mühe machen, woanders aufzustehen und Freeride zu fahren.
Ich bin nicht sicher, wofür dieser Code verwendet wird.
Verbote Menschen sollten einen Standard-Webbrowser verwenden, um in einer ähnlichen Zeit mehr Anforderungsnachrichten an unseren verwalteten Server zu senden, als in einer bestimmten Zeit vernünftigerweise generiert werden können. Handlungen, die den Server oder das Netzwerksystem dieses Dienstes in irgendeiner Weise stören.
[Fall-Wikipedia der Zentralbibliothek der Stadt Okazaki]: https://ja.wikipedia.org/wiki/%E5%B2%A1%E5%B4%8E%E5%B8%82%E7%AB%8B%E4%B8 % AD% E5% A4% AE% E5% 9B% B3% E6% 9B% B8% E9% A4% A8% E4% BA% 8B% E4% BB% B6 [Getting started - ChromeDriver - WebDriver for Chrome]:https://sites.google.com/a/chromium.org/chromedriver/getting-started [Chrome unter CentOS 7-Qiita installieren]: http://qiita.com/shadowhat/items/af6b973df43d75abfe8e [Ich habe versucht, Headless Chrome von Selenium - Qiita zu verwenden]: http://qiita.com/orangain/items/db4594113c04e8801aad
[Einfrieren mit send_keys der Dateiauswahl beim Ausführen von Selenium WebDriver mit Python [PhantomJS] --Qiita]: http://qiita.com/khsk/items/d017191905db99a94ffe
Recommended Posts