使用rvest和phantomjs抓取数据时获取错误

时间:2019-07-15 03:29:12

标签: r web-scraping phantomjs fetch rvest

我正在尝试使用rvest和phantomjs从网站上抓取数据。我以https://www.datacamp.com/community/tutorials/scraping-javascript-generated-data-with-r为例 但是,在运行system()命令:ReferenceError: Can't find variable: fetch时出现错误。我正在使用Windows 10和最新版本的Chrome。

这是我的代码:

library(rvest)
library(stringr)
library(plyr)
library(dplyr)
library(ggvis)
library(knitr)

system("./phantomjs-2.1.1-windows/bin/phantomjs scrape_test.js")
test1 <- xml2::read_html("propertyguru.html") %>%
  html_nodes(".agent-info-listing a")
test1.2 <- html_text(test1)

我的js文件如下:

var webPage = require('webpage');
var page = webPage.create();

var fs = require('fs');
var path = 'propertyguru.html'

var part1 = 'https://www.propertyguru.com.sg/property-agent-directory/search?freetext="';
var part2 = 'jasmine+png';
var part3 = '"';
var webSite = part1 + part2 + part3;
page.open(webSite, function (status) {
  var content = page.content;
  fs.write(path,content,'w')
  phantom.exit();
});

我将URL分为三个部分,以便能够轻松更改正在搜索的名称。里面的名字只是一个随机选择的名字。

如果运行此命令,则会得到错误和一个空列表作为回报:

ReferenceError: Can't find variable: fetch
https://cdn.pgimgs.com/1562812918/sf2-search/bundles/guruwidget/js/desktop/jquery.widgetGoogleAnalytics.js:113 in initUniveral
  https://cdn.pgimgs.com/1562812918/sf2-search/bundles/guruwidget/js/desktop/jquery.widgetGoogleAnalytics.js:21 in init
[1] 0

我已经搜索了该错误,显然Safari存在问题,但未找到与Chrome有关的任何内容。有人建议将import 'whatwg-fetch';包含到js文件中。但是,如果我这样做了,我的R脚本将永远运行,并且我什么都不会停止它-它只会运行。 有人知道出什么事了吗?我的目标是从网站上获取“ 12个活跃列表”部分。不幸的是,我是JS的新手,有点笨。 感谢您的帮助!

0 个答案:

没有答案