Загрузка нескольких URL через phantomjs в R. Как я могу зациклить их? - PullRequest
1 голос
/ 27 июня 2019

Я пытаюсь загрузить несколько URL через R, используя pahtomjs, поскольку веб-сайты содержат javascript. Я могу загрузить одну веб-страницу, используя код в последнем поле кода ниже, но мне нужно, чтобы он работал для нескольких веб-сайтов. Чтобы найти этот код, я использовал этот урок: http://flovv.github.io/Scrape-JS-Sites/ У меня есть строка символов URL-адресов, URL-адресов [i] и одна для пунктов назначения, где они должны быть сохранены URL-адреса [i]. Ранее я пробовал:

for(i in seq_along(urls)) {
 download.file(urls[i], destinations[i], mode="wb")
}

Однако это не сработало, поскольку веб-сайты содержат JavaScript.

Я пытался следить за ответами в этом посте, но был довольно смущен: Очистка нескольких URL с помощью циклов в PhantomJS

writeLines("var url = 'url link';
var page = new WebPage();
var fs = require('fs');

page.open(url, function (status) {
        just_wait();
});

function just_wait() {
    setTimeout(function() {
               fs.write('1.html', page.content, 'w');
            phantom.exit();
    }, 2500);
}
", con = "scrape.js")

js_scrape <- function(url = "url link", 
                      js_path = "scrape.js", 
                      phantompath = "phantomjs"){
  lines <- readLines(js_path)
  lines[1] <- paste0("var url ='", url ,"';")
  writeLines(lines, js_path)

  command = paste(phantompath, js_path, sep = " ")
  system(command)

}

js_scrape()

Пожалуйста, помогите мне!

...