Wenn ich Phantomjs verwende, um die Anmeldung zu simulieren, gibt es in den lokalen Fenstern überhaupt kein Problem, aber bei der Bereitstellung auf Ubuntu 14.04 im Server-Docker funktioniert es nicht. Ich habe festgestellt, dass die Seite nicht geladen ist, und ich habe sie nicht gefunden eine Lösung. Das einfachste Beispiel wird ebenfalls scheitern:
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)
Ich habe versucht, implizit auf das Laden zu warten; die Fenstergröße anzupassen; alle Domainnamen auf der Seite können gepingt werden. Nichts ist gelöst. Ich frage mich, ob bei der Installation von PhantomJS etwas nicht stimmt. Zuerst habe ich es mit apt-get installiert, aber --version hat zu einem Fehler geführt. Die Antwort, die ich laut diesem Fehler gefunden habe, war, das komprimierte Paket von der offiziellen Website herunterzuladen, es zu installieren und die Umgebungsvariablen zu konfigurieren , und dieses Problem ist aufgetreten.
Umgebung:
ubuntu14.04
python2.7
phantomjs 2.1.1 in
Screenshot der zuletzt geladenen Schnittstelle:
从截图来看应该是编码的问题,中文字符都无显示
试试
python3
吧,2.7对中文编码一直不太友好 :)1、你可以尝试把获取的源代码保存到文件中,以.html文件保存,用浏览器打开看下页面正常吧。
2、也可能是字符串编码不对,百度一下中文那四个字显示都不正常,你可以在代码中把获取的代码转码一下,然后再处理截图。
可以先试下第一步