在R

时间:2018-11-23 09:51:04

标签: javascript r loops web-scraping phantomjs

这是我编程的第一步,在打扰你们之前,我正在尝试学习尽可能多的东西。但是现在,在尝试了几种方法(我自己考虑或在网上发现)后,我几乎陷入了困境。

我现在想要做的是保存多个完整的JavaScript页面,以便在R中进一步使用它们。据我所知,使用phantomjs这是可能的。我设法获得了加载页面的代码。但是我在循环中挣扎:

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


       for (i = 101; i <= 150; i++) {
       page.open('http://understat.com/match/' + i, function (status) {
               just_wait();
       });


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

       js_scrape <- function(
                  js_path = "scrape.js", 
                  phantompath = "/Users/Marek/Documents/Programmierung/Startversuche/phantomjs-2.1.1/bin/phantomjs"){

                    lines <- readLines(js_path)
                    command = paste(phantompath, js_path, sep = " ")
                    system(command)

                  }

       js_scrape()

它只是保存循环的最后一页。阅读其他线程,我了解到问题在于phantomJS是异步的,并且在加载页面之前几乎关闭了页面。但是我无法解决,因此将所有页面保存在不同的文件中。

0 个答案:

没有答案