[PYTHON] Je souhaite prendre une capture d'écran du site sur Docker en utilisant n'importe quelle police

Objectif: je veux prendre une capture d'écran du site en utilisant n'importe quelle police sur Docker, plus je veux tester

Il y a un article jusqu'à ce que je prenne une capture d'écran, mais je n'ai pas pu trouver un article en japonais que j'ai fait avant d'avoir défini une police arbitraire, alors je l'ai écrit.

Toutes les sources sont ici https://github.com/frkwy/xvfb_screenshot_on_docker

Les polices et les phrases utilisées cette fois sont [Style de lycéenne? Téléchargez la jolie police extra-fine "JK Gothic L" | Font and Cute Girl [http://font.cutegirl.jp/jk-font-light.html) Aozora Bunko Natsume Soseki Je suis un chat J'ai utilisé.

Vérifier les polices et vérifier les priorités

La solution consiste à augmenter la priorité de la police que vous souhaitez utiliser. fc-list: Liste des polices Si ce n'est pas ici, la police n'est pas installée Cette fois, c'est Firefox C'est OK si la police que vous voulez utiliser lorsque vous exécutez fc-match -s sarif est en haut. Pour cela, nous allons créer font.conf.

Dockerfile

FROM alpine:latest

COPY fonts.conf /root/.config/fontconfig/
# Please override your favorite font file path
COPY JKG-L_3.ttf /root/.local/share/fonts/

RUN apk update && apk add python3 xvfb firefox dbus && rm -rf /var/cache/apk/*
RUN python3 -m ensurepip
RUN pip3 install --upgrade pip selenium xvfbwrapper

RUN fc-cache -fv

CMD ["python3", "/host/example.py"]

font.conf En supposant que la police est déjà installée dans le Dockerfile ci-dessus, Amenez la priorité de la police que vous souhaitez utiliser en haut avec binding =" strong ".

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
   <match target="pattern">
        <edit name="family" mode="assign" binding="strong">
           <string>JK Gothic L</string>
        </edit>
    </match>
</fontconfig>

Ceci est une capture d'écran réellement prise. Screenshot_from_2016-03-21 20:30:14.png

Recommended Posts

Je souhaite prendre une capture d'écran du site sur Docker en utilisant n'importe quelle police
Keras Je veux obtenir la sortie de n'importe quelle couche !!
Je souhaite trier une liste dans l'ordre des autres listes
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
Je ne veux pas passer un test de codage
Je souhaite personnaliser l'apparence de zabbix
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Je souhaite définir un cycle de vie dans la définition de tâche d'ECS
Je veux ajouter du silence pendant 1 seconde au début d'un fichier wav
Je souhaite voir une liste de fichiers WebDAV dans le module Requêtes
J'ai fait un script pour enregistrer la fenêtre active en utilisant win32gui de Python
100 coups sur le traitement d'image !! (021-030) Je veux faire une pause ...
Je veux grep le résultat de l'exécution de strace
Prenez des captures d'écran LCD avec Python-LEGO Mindstorms
Je veux trouver un package populaire sur PyPi
Je veux bien comprendre les bases de Bokeh
Je souhaite installer un package de Php Redis
Je veux automatiser ssh en utilisant la commande expect!
Je souhaite augmenter la sécurité de la connexion SSH
[Python3] Prenez une capture d'écran d'une page Web sur le serveur et recadrez-la davantage
[Exemple d'amélioration de Python] Apprentissage des bases de Python sur un site gratuit en 2 semaines
[Python] J'ai créé un système pour introduire "la recette que je veux vraiment" depuis le site de recettes!
Je veux tracer les informations de localisation de GTFS Realtime sur Jupyter! (Avec ballon)
Je voulais collecter beaucoup d'images, j'ai donc essayé d'utiliser "google image download"
Je veux automatiser ssh en utilisant la commande expect! partie 2
Je veux démarrer beaucoup de processus à partir de python
Je souhaite utiliser uniquement le traitement de normalisation SudachiPy
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
J'ai fait une fonction pour vérifier le modèle de DCGAN
Je veux déterminer l'authenticité d'un élément du tableau numpy
J'ai fait un modèle VGG16 en utilisant TensorFlow (en chemin)
Je veux connaître la nature de Python et pip
Je veux connaître la légende du monde des technologies informatiques
Je veux créer un Dockerfile pour le moment.
J'ai essayé de comparer la précision des modèles d'apprentissage automatique en utilisant kaggle comme thème.
Je veux trouver l'intersection d'une courbe de Bézier et d'une ligne droite (méthode de découpage de Bézier)
Je souhaite produire une carte thermique magnifiquement personnalisée de la matrice de corrélation. édition matplotlib
Comment dessiner facilement la structure d'un réseau de neurones sur Google Colaboratory à l'aide de "convnet-tiroir"
Je veux faire un changeur de voix en utilisant Python et SPTK en référence à un site célèbre
J'ai essayé d'automatiser la construction d'un environnement pratique à l'aide de l'API SoftLayer d'IBM Cloud
Comment prendre une capture d'écran de l'écran Chrome (l'empêcher de se couper au milieu)
Je veux obtenir le nom de la fonction / méthode en cours d'exécution
Je souhaite enregistrer l'heure d'exécution et conserver un journal.
J'ai essayé de créer un site qui permet de voir facilement les informations mises à jour d'Azure
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
Publiez le script shell créé pour réduire les problèmes de création de LiveUSB sous Linux
[Python] J'ai écrit la route du typhon sur la carte en utilisant le folium
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
Je veux lire la version html de la version "OpenCV-Python Tutorials" OpenCV 3.1
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Je veux sortir le début du mois prochain avec Python
Je voulais contester la classification du CIFAR-10 en utilisant l'entraîneur de Chainer
J'ai essayé de créer une expression régulière de "date" en utilisant Python
J'ai essayé de numériser le tampon estampé sur papier en utilisant OpenCV
Je veux créer un système pour éviter d'oublier de serrer la clé 1
J'ai essayé d'obtenir une liste de noms AMI en utilisant Boto3
J'ai essayé d'enregistrer une station sur la plateforme IoT "Rimotte"