phantomjs没有加载instagram和pintersest网页

时间:2016-09-12 16:23:20

标签: javascript python-2.7 phantomjs instagram pinterest

我在Ubuntu Server 16.04.1下的python 2.7.12中使用PhantomJS 2.1.1,并在pyvirtualdisplay中显示

PhantomJS无法加载Instagram交互式dom页面(https://www.instagram.com/accounts/login/)。页面代码应在

之内
<span id="react-root"></span>

但它仍然是空的。

Instagram页面在Mac OS X 10.11.6下的python 2.7.10中正确加载了PhantomJS 2.1.1; Ubuntu Server下的PhantomJS可以正确加载许多其他网站(twitter,tumblr等),所以我猜Ubuntu Server中有一些丢失的模块,但无法理解哪一个。

它既不能加载https://www.pinterest.com/login/,但只需使用curl正确加载此页面。

有人可以帮忙吗? 谢谢。

这是python代码:

from selenium import webdriver
from pytvirtualdisplay import Display

display = Display(visible=0,size=(800,600))
display.start()

browser = webdriver.PhantomJS()
browser.set_window_size(800, 600)
browser.get('https://www.instagram.com/accounts/login/')

browser.get('https://www.pinterest.com/login/')

ghostdriver.log

[INFO  - 2016-09-12T16:08:37.057Z] GhostDriver - Main - running on port 49739
[INFO  - 2016-09-12T16:08:37.933Z] Session [2a14fc60-7903-11e6-a755-53e4799f55f3] - page.settings - {"XSSAuditingEnabled":false,"javascriptCanCloseWindows":true,"javascriptCanOpenWindows":true,"javascriptEnabled":true,"loadImages":true,"localToRemoteUrlAccessEnabled":false,"userAgent":"Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1","webSecurityEnabled":true}
[INFO  - 2016-09-12T16:08:37.933Z] Session [2a14fc60-7903-11e6-a755-53e4799f55f3] - page.customHeaders:  - {}
[INFO  - 2016-09-12T16:08:37.933Z] Session [2a14fc60-7903-11e6-a755-53e4799f55f3] - Session.negotiatedCapabilities - {"browserName":"phantomjs","version":"2.1.1","driverName":"ghostdriver","driverVersion":"1.2.0","platform":"linux-unknown-64bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"databaseEnabled":false,"locationContextEnabled":false,"applicationCacheEnabled":false,"browserConnectionEnabled":false,"cssSelectorsEnabled":true,"webStorageEnabled":false,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":{"proxyType":"direct"}}
[INFO  - 2016-09-12T16:08:37.934Z] SessionManagerReqHand - _postNewSessionCommand - New Session Created: 2a14fc60-7903-11e6-a755-53e4799f55f3

更新: 用

安装phantomjs
sudo apt-get install phantomjs

它正确加载整个页面。但是这个包缺少一些重要的第三方依赖(例如find_element Atom)。

使用

安装phantomjs
npm install phantomjs-prebuilt

它没有正确加载页面(即使它已经拥有所有第三方原子)。

有没有办法使用与npm安装的apt-get和第三方Atom一起安装的可执行文件?

1 个答案:

答案 0 :(得分:0)

解决。

我直接从git repository解决了在Ubuntu Server上编译phantomjs的问题。 也许预编译的二进制文件可能不完整。

详细信息:http://phantomjs.org/build.html