2016-09-12 1 views
0

Я использую PhantomJS 2.1.1 в Python 2.7.12 под Ubuntu Server 16.04.1, с дисплеем от pyvirtualdisplayphantomjs не загружая Instagram и pintersest веб-страниц

PhantomJS не может загрузить Instagram интерактивных страниц DOM (https://www.instagram.com/accounts/login/) , Код страницы должен быть в пределах

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

но он остается пустым.

Страницы Instagram правильно загружены с помощью PhantomJS 2.1.1 в python 2.7.10 под Mac OS X 10.11.6; PhantomJS под Ubuntu Server может корректно загружать многие другие веб-сайты (twitter, tumblr и т. Д.), Поэтому я предполагаю, что в Ubuntu Server есть недостающий модуль, но он не может понять, какой из них.

Он не может ни загрузить https://www.pinterest.com/login/, но эта страница правильно загружена, используя просто завиток.

Может кто-нибудь помочь? Спасибо.

Вот код питона:

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 

это не правильно загрузить страницу (даже если он получил все сторонние Atoms).

Есть ли способ использовать исполняемый файл, установленный с apt-get и сторонними атомами, установленными npm?

ответ

0

РЕШЕНИЕ.

Я решил скомпилировать phantomjs на сервере Ubuntu непосредственно из репозитория git. Так что, возможно, предварительно скомпилированные двоичные файлы не завершены.

Подробности здесь: http://phantomjs.org/build.html