Python:Selenium与PhantomJS空页源

时间:2014-05-10 12:54:09

标签: python selenium phantomjs

当我想获取网页的来源时,我在Windows7上遇到了Selenium和PhantomJS的问题。 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

在具有相同版本的PhantomJS的Linux上,它可以完美运行。它也适用于Windows Server 2003。

4 个答案:

答案 0 :(得分:32)

默认情况下,phantomjs使用SSLv3,但是在ssl中的bug之后的许多站点都迁移到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'])

答案 1 :(得分:8)

使用service_args=['--ignore-ssl-errors=true']就可以了!

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

答案 2 :(得分:2)

driverPhantom = webdriver.PhantomJS(driverLocation, service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any'])      # initaling web driver for PhantomJs

为我工作。

答案 3 :(得分:0)

增加屏幕尺寸,如下图所示:

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