C'est une petite application du système d'automatisation du navigateur.
PaintsChainer - Service de coloration automatique de dessin en ligne- Utilisez Selenium pour colorer les images dans le répertoire spécifié sans conseils.
Au début, je construisais avec des phantomjs, mais un jour après avoir commencé à construire
De 10h30 le 27 juin à 16h00 le 28 juin, heure du Japon, il y avait un problème en raison du fait que Paints Chainer ne pouvait pas être automatiquement coloré sur certains navigateurs. Nous remercions les utilisateurs qui ont posé des questions à ce sujet. Actuellement, nous avons restauré.
J'ai changé pour Chrome car il y avait un changement qui a provoqué une erreur JS autre que Chrome. Je pensais que je devais changer de train, alors j'ai peur d'être malheureux. De plus, il était facile de passer à la version stable de Chrome qui est devenue 59.
# 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/Pas nécessaire car j'ai déplacé le binaire vers
options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://paintschainer.preferred.tech/index_ja.html')
#Je ne pense pas que ce soit nécessaire, mais cela interfère avec la capture d'écran pour vérifier l'opération, alors fermez l'écran du contrat
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)
#Mesures PNG transparentes qui ne prennent pas en charge TODO Majuscules et minuscules?
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()
Je n'arrive toujours pas à écrire proprement ...
Avec PaintsChainer (et le fichier image), vous pouvez lire des dessins animés en couleur! Le résultat de regarder à travers. Ce n'était pas très bon. La couleur est vague, mais la police est floue.
En fait, je pensais poster un exemple de coloriage de "Donnez-moi un blackjack", mais j'ai arrêté car je pensais que c'était gênant de contacter l'e-mail après la sortie juste avant. Si vous refusez, c'est une licence vraiment lâche et bonne car vous n'avez qu'à contacter après coup et afficher le titre et le nom de l'auteur. "Give me a blackjack" manga data est accessible à tous gratuitement pour un usage secondaire.
Je pense que les outils de "pseudo quadrichromie" comme les visionneuses de dessins animés ont un sentiment plus unifié. Plutôt que le manuscrit terminé, si vous êtes impoli, cela ressemble plus à un système Shintosha? Un dessin animé qui est plus proche d'un dessin au trait peut être plus adapté à l'utilisation.
L'objectif d'apprentissage est différent en premier lieu. Cependant, la page couleur du dessin animé semble avoir une technique différente du monochrome et il semble difficile de collecter des échantillons. Et si vous pouvez faire cela, vous ne vous donneriez pas la peine de vous lever et de freeride ailleurs.
Je ne sais pas à quoi sert ce code.
Interdictions Les humains doivent utiliser un navigateur Web standard pour envoyer plus de messages de demande à notre serveur géré dans un laps de temps similaire à celui qui peut raisonnablement en générer dans un laps de temps donné. Actes qui interfèrent de quelque manière que ce soit avec le serveur ou le système réseau de ce service.
[Affaire de la bibliothèque centrale d'Okazaki City - Wikipedia]: 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 [Installer Chrome sur CentOS 7-Qiita]: http://qiita.com/shadowhat/items/af6b973df43d75abfe8e [J'ai essayé d'utiliser Headless Chrome de Selenium --Qiita]: http://qiita.com/orangain/items/db4594113c04e8801aad
[Figer avec send_keys de la sélection de fichiers lors de l'exécution de Selenium WebDriver avec Python [PhantomJS] --Qiita]: http://qiita.com/khsk/items/d017191905db99a94ffe
Recommended Posts