Phantomjs возвращает 404 в R при попытке webscraping - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь собрать некоторые данные на внебиржевых рынках (в пределах их robots.txt) и не могу подключиться к веб-странице.

  1. Первый шаг, который я попробовал, состоял в том, чтобы просто соскоблить HTML прямо со страницы, но для загрузки страницы требуется JavaScript.
  2. Итак, я скачал фантомы и подключился таким образом. Однако это приводит к ошибке 404
  3. Затем я изменил пользовательский агент на что-то похожее на пользователя, чтобы посмотреть, позволит ли он мне подключиться, и все же, не повезло! Что здесь происходит

Вот воспроизводимая версия моего кода, любая помощь будет оценена. Phantomjs можно скачать здесь: http://phantomjs.org/

library(rvest)
library(xml2)
library(V8)
# example website, I have no correlation to this stock
url <- 'https://www.otcmarkets.com/stock/YTROF/profile' 

# create javascript file that phantomjs can process
writeLines(sprintf("var page = require('webpage').create();
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36';
page.open('%s', function () {
    console.log(page.content); //page source
    phantom.exit();
});", url), con="scrape.js")

html <- system("phantomjs.exe_PATH scrape.js", intern = TRUE)
page_html <- read_html(html)
...