PhantomJS 不再加载 GooglePlus 页面

PhantomJS no more loading GooglePlus pages

我正在使用 phantomjs 2.1.1(在 Ubuntu 服务器 16.04.1 和 Mac OS X 10.12.2 上)和 python selenium webdriver .

从现在开始,PhantomJS 似乎无法再加载 googleplus 页面了。它加载 404 错误页面。尝试使用 Firefox jeckodriver 加载相同的页面,它加载了正确的页面;同时在 Safari、Firefox 或 Chrome.

上粘贴 url

googleplus 和 PhantomJS 之间出了什么问题?

示例代码:

#!/usr/bin/env python

from selenium import webdriver
import time

driver = webdriver.PhantomJS()

WORD = "rock"
driver.get("https://plus.google.com/s/%s/top" % WORD)
time.sleep(7)

F = open('googleplus-test-search.html','w')
F.write( driver.page_source.encode('utf-8') )
F.close()

driver.quit()
exit(0)

加载的页面:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, minimum-scale=1, width=device-width">
<title>
Error 404 (Non trovato)!!1</title>
<style>
*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{color:#222;text-align:unset;margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px;}* >
 body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}pre{white-space:pre-wrap;}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}</style>
</head>
<body>
<div id="af-error-container">
<a href="//www.google.com/">
<span id="logo" aria-label="Google">
</span>
</a>
<p>
<b>
404.</b>
 <ins>
Errore.</ins>
</p>
<p>
Impossibile trovare l'URL richiesto su questo server. <ins>
Nessun'altra informazione disponibile.</ins>
</p>
</div>
</body>
</html>

我修复了为 PhantomJS 设置自定义 userAgent

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = (
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 9_1_3) AppleWebKit/602.3.12 "
        "(KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"
)
browser = webdriver.PhantomJS(desired_capabilities=dcap)