Python: le Sélénium avec PhantomJS vide source de la page
J'ai de la difficulté avec le Sélénium et le PhantomJS sur Windows7 quand je veux obtenir le code source de la page de l'URL.
browser.page_source
renvoie uniquement <html><head></head></html>
. J'ai mis un sommeil avant browser.page_source
mais il n'a pas aidé.
C'est mon code:
from selenium import webdriver
browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe')
url = 'myurl'
browser.get(url)
print browser.page_source
Sur Linux avec la même version de PhantomJS, il fonctionne parfaitement. Aussi il fonctionne sur Windows Server 2003.
- Essayez un peu de débogage, une capture d'écran par exemple
- La capture d'écran est vide, vide de l'image. Je pensais que c'est un problème avec PhantomJS et j'ai essayé de charger la page avec PyQt4 de webkit, mais le résultat est le même, juste <html> et <head> balises. C'est l'URL qui me donne ce mal de tête: homesearch.com/browse?fulltextquery=miami+fl&page=0
- J'ai rencontré le même problème lors de la navigation de certains https://url. Utilisation
time.sleep(few_seconds)
ou webdriver du conditions prévues attendre un certain élément pour être présent sur la page après l'appel debrowser.get(url)
- aussi essayer de créer une instance de pilote avec ces params
browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe', service_args=['--ignore-ssl-errors=true'])
- J'ai utilisé un sommeil de 15 à 20 secondes et le résultat était le même. Je vais essayer avec service_args.
Vous devez vous connecter pour publier un commentaire.
par défaut phantomjs utilisation SSLv3, mais de nombreux sites après bug dans le protocole ssl migrer vers tls. C'est pourquoi vous a page vierge.
utilisation
service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any']
--ignore-ssl-errors
est dangereux et vous ne devriez pas l'utiliser, sauf si vous savez ce que vous faites. L'autre option sera probablement résoudre la plupart des problèmes.--ignore-ssl-errors
ou de fournir une référence à ce sujet?How can we found these selenium phantomjs usages?
je pense que c'est très dur pour moi de trouver ces usages dans seleniumhq.org/docsÀ l'aide de
service_args=['--ignore-ssl-errors=true']
a fait le tour !webdriver.Remote
que je suis en cours d'exécution d'un phantomJS à distance. Savez-vous comment passer le service_args si c'est le cas?A fonctionné pour moi.
l'augmentation de la taille de l'écran comme ci-dessous a fonctionné pour moi: