Python: Selenium с пустым источником страницы PhantomJS
У меня возникают проблемы с Selenium и PhantomJS в Windows7, когда я хочу получить источник страницы URL-адреса.
browser.page_source
возвращает только <html><head></head></html>
. Я спал до browser.page_source
, но это не помогло.
Это мой код:
from selenium import webdriver
browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe')
url = 'myurl'
browser.get(url)
print browser.page_source
В Linux с той же версией PhantomJS он отлично работает. Также он работает на Windows Server 2003.
Ответы
Ответ 1
по умолчанию phantomjs использует SSLv3, но многие сайты после ошибки в ssl мигрируют в tls. Вот почему у вас пустая страница.
используйте 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'])
Ответ 2
Используя service_args=['--ignore-ssl-errors=true']
сделал трюк!
browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe', service_args=['--ignore-ssl-errors=true'])
Ответ 3
driverPhantom = webdriver.PhantomJS(driverLocation, service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any']) # initaling web driver for PhantomJs
Работал для меня.
Ответ 4
увеличение размера экрана, как показано ниже, для меня:
driver = webdriver.PhantomJS(path2phantom, service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any'])
driver.set_window_size(2000, 1500)