2015-05-01 2 views
2

Почему источник страницы youtube.com не очищается?rselenium | получить источник страницы youtube

Я попытался следующие (с использованием phantomjs, а также хром с сервером селеном)

library(RSelenium) 
pJS <- phantom(pjs_cmd = ...) 
Sys.sleep(5) # give the binary a moment 
remDr <- remoteDriver(browserName = 'phantomjs') 
remDr$open() 
remDr$navigate("https://www.youtube.com/") 
remDr$getTitle()[[1]] # [1] "YouTube" 
remDr$getPageSource() 

Возвраты:

Error in fromJSON(content, handler, default.size, depth, allowComments, : 
    invalid JSON input 

ответ

3

Его проблема с кодировкой. Используйте версию dev до сих пор, пока следующая версия не будет выпущена в CRAN:

devtools::install_github("ropensci/RSelenium") 
0

Я согласен с тем, что проблема, скорее всего, связана с кодировкой.

Например, такая проблема появляется на веб-сайте nasa.gov только на тематических страницах, посвященных американо-российскому космическому сотрудничеству (что говорит о том, что это связано с кириллическими символами в содержании веб-страниц).

Я решил проблему, используя устаревшие Relenium, где RSelenium не работает. Чтобы сделать Relenium работать плавно на Ubuntu 16.04 Мне пришлось установить Firefox 25.0 и настроить его таким образом, чтобы предотвратить любые обновления. Другой проблемой во время настройки была правильная установка rJava, которая может выйти из строя из-за отсутствия переменных окружения с надлежащими путями к библиотекам Java.

Конфигурация системы выглядит следующим образом:

R version 3.3.1 (2016-06-21) 
Platform: x86_64-pc-linux-gnu (64-bit) 
Running under: Ubuntu 16.04.1 LTS 

relenium_0.3.0; seleniumJars_2.41.0; rJava_0.9-8; RSelenium_1.3.5 

Ниже приведен пример страницы, которые могут быть Царапины с Relenium, но не с версией выпуска RSelenium:

link = "http://www.nasa.gov/mission_pages/station/expeditions/expedition14/index.html" 

решение RSelenium терпит неудачу (с Firefox версии 34.0.5, или 25.0, не важно):

startServer() 
remDr <- remoteDriver() 
remDr$open() 
remDr$navigate(link) 
doc = unlist(remDr$getPageSource()) 

Результат: "Ошибка в fromJSON (содержание, обработчик, default.size, глубина, allowComments,: недействителен JSON вход"

Хотя Relenium нормально с ним:

relenium_browser <- firefoxClass$new() 
relenium_browser$get(link) 
doc = unlist(relenium_browser$getPageSource()) 
doc = read_html(doc) 
+0

Существует проблема с firefox 47 и селеном. Есть выпущенный firefox 47.01, но он кажется недоступным для ubuntu. Вы можете установить firefox 48, который должен работать с текущей версией RSelenium. См. Https://www.mozilla.org/en-US/firefox/47.0.1/releasenotes/ – jdharrison

Смежные вопросы