2014-05-10 22 views
19

Ho problemi con Selenium e PhantomJS su Windows7 quando voglio ottenere l'origine della pagina di un URL. browser.page_source restituisce solo <html><head></head></html>. Ho dormito prima dello browser.page_source ma non è stato d'aiuto.Python: selenio con origine pagina PhantomJS vuota

Questo è il mio codice:

from selenium import webdriver 
browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe') 
url = 'myurl' 
browser.get(url) 
print browser.page_source 

su Linux con la stessa versione di PhantomJS funziona perfettamente. Funziona anche su Windows Server 2003.

+0

Provate un po 'di debug, catturare uno screenshot ad esempio –

+2

La schermata è vuota, un'immagine vuota. Ho pensato che fosse un problema con PhantomJS e ho provato a caricare la pagina con il webkit di PyQt4 ma il risultato è lo stesso, solo i tag e . Questo è l'URL che mi dà questo mal di testa: https://www.homesearch.com/browse?fulltextquery=miami+fl&page=0 –

+0

Ho riscontrato lo stesso problema durante l'esplorazione di alcuni _https_: // url. Usa 'time.sleep (few_seconds)' o il webdriver [condizioni previste] (http://selenium-python.readthedocs.org/en/latest/api.html#selenium.webdriver.support.expected_conditions.presence_of_element_located) per aspettare un po ' elemento presente sulla pagina dopo aver chiamato 'browser.get (url)' –

risposta

31

da phantomjs predefinite Usa SSLv3, ma molti siti dopo bug in SSL migrare verso TLS. Ecco perché hai una pagina vuota. utilizzare service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any']

browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe', service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any']) 
+0

Questo è stato messo in svantaggio perché usare l'ignora errore ssl non ha funzionato per me, ma aggiungendo il protocollo ssl suggerito da questa guida per i commenti. Complimenti – freonix

+0

Vorrei poterlo revocare più di una volta – valignatev

+0

Attenzione che '--ignore-ssl-errors' è pericoloso e non dovresti usarlo a meno che tu non sappia cosa stai facendo. L'altra opzione probabilmente risolverà la maggior parte dei problemi. –

8

Utilizzare service_args=['--ignore-ssl-errors=true'] ha fatto il trucco!

browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe', service_args=['--ignore-ssl-errors=true']) 
1
driverPhantom = webdriver.PhantomJS(driverLocation, service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any'])  # initaling web driver for PhantomJs 

lavorato per me.

0

aumentare le dimensioni dello schermo, come di seguito ha lavorato per me:

driver = webdriver.PhantomJS(path2phantom, service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any']) 
driver.set_window_size(2000, 1500)

Problemi correlati