Maison > Questions et réponses > le corps du texte
Lorsque j'utilise phantomjs pour simuler la connexion, il n'y a aucun problème sur les fenêtres locales, mais cela ne fonctionne pas lorsqu'il est déployé sur Ubuntu14.04 dans le docker du serveur, je trouve que la page n'a pas été chargée, et je ne l'ai pas fait. trouvé une solution. L'exemple le plus simple échouera également. Par exemple :
from selenium import webdriver
login_url = "https://www.baidu.com"
img_name = './img.png'
if __name__ == '__main__':
driver = webdriver.PhantomJS()
driver.implicitly_wait(20)
driver.get(login_url)
driver.save_screenshot(img_name)
J'ai essayé d'attendre implicitement le chargement ; d'attendre de manière forcée la mise en veille ; d'ajuster la taille de la fenêtre et les noms de domaine sur la page peuvent tous être pingés ; Rien n'est résolu. Je me demande si quelque chose ne va pas lors de l'installation de phantomjs ? Tout d'abord, je l'ai installé en utilisant apt-get, mais --version a provoqué une erreur. Ensuite, la réponse que j'ai trouvée en fonction de cette erreur était de télécharger le package compressé depuis le site officiel, de l'installer et de configurer les variables d'environnement. et ce problème s'est produit.
Environnement :
ubuntu14.04
python2.7
phantomjs 2.1.1 dans Docker est installé à partir du package compressé téléchargé depuis le site officiel
Capture d'écran de la dernière interface chargée :
phpcn_u15822017-05-18 11:00:18
À en juger par les captures d'écran, il semble y avoir un problème d'encodage, car aucun caractère chinois n'est affiché
漂亮男人2017-05-18 11:00:18
Essayez-lepython3
, la version 2.7 n'a jamais été très conviviale avec l'encodage chinois :)
滿天的星座2017-05-18 11:00:18
1. Vous pouvez essayer de sauvegarder le code source obtenu dans un fichier, de l'enregistrer en tant que fichier .html et de l'ouvrir avec un navigateur pour voir si la page est normale.
2. Il se peut que l'encodage de la chaîne soit incorrect. Les quatre caractères chinois affichés sur Baidu ne s'affichent pas correctement. Vous pouvez transcoder le code obtenu dans le code puis traiter la capture d'écran.
Vous pouvez d'abord essayer la première étape