Apabila saya menggunakan phantomjs untuk mensimulasikan log masuk, tiada masalah sama sekali pada tetingkap tempatan, tetapi ia tidak berfungsi apabila digunakan ke ubuntu14.04 dalam docker pelayan, saya mendapati halaman itu tidak dimuatkan, dan saya tidak menemuinya satu penyelesaian. Contoh paling mudah juga akan gagal Contohnya:
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)
Saya telah mencuba secara tersirat menunggu untuk memuatkan; melaraskan saiz tetingkap; Tiada apa-apa yang diselesaikan. Saya tertanya-tanya jika ada yang salah semasa memasang phantomjs? Mula-mula, saya memasangnya menggunakan apt-get, tetapi --version menggesa ralat Kemudian jawapan yang saya temui mengikut ralat ini adalah untuk memuat turun pakej termampat dari laman web rasmi, memasangnya dan mengkonfigurasi pembolehubah persekitaran saya melakukan perkara yang sama , dan masalah ini berlaku.
Persekitaran:
ubuntu14.04
python2.7
phantomjs 2.1.1 dalam
Tangkapan skrin antara muka yang terakhir dimuatkan:
Berdasarkan tangkapan skrin, ia nampaknya menjadi masalah pengekodan, kerana tiada aksara Cina dipaparkan
Cuba
python3
, 2.7 tidak pernah mesra dengan pengekodan Cina :)1. Anda boleh cuba menyimpan kod sumber yang diperoleh pada fail, menyimpannya sebagai fail .html dan membukanya dengan penyemak imbas untuk melihat sama ada halaman itu normal.
2. Mungkin pengekodan rentetan tidak betul Empat aksara Cina yang dipaparkan pada Baidu tidak dipaparkan dengan betul Anda boleh menukar kod yang diperolehi dalam kod dan kemudian memproses tangkapan skrin.
Boleh cuba langkah pertama dulu