Null来自R中的readHTMLTable

时间:2014-03-06 00:22:29

标签: xml r web-scraping

我正在尝试使用XML包从R中的网站上删除数据,但我没有得到任何结果。我的代码如下。结果为NULL。第一行显示空结果(它没有找到任何表)。

url = http://www.machinerytrader.com/list/list.aspx?pg=1&ETID=5&catid=1015&SO=26&mdlx=contains&bcatid=4&Pref=0&Thumbs=1&scf=false&units=imperial

代码:

tables <- readHTMLTable(url, stringsAsFactors=FALSE)
data<-do.call("rbind", tables[seq(from=8, to=56, by=2)])
data<-cbind(data, sapply(lapply(tables[seq(from=9, to=57, by=2)],  '[[', i=2), '[', 1))
rownames(data)<-NULL
names(data) <- c("year.man.model", "s.n", "price", "location", "auction")
head(data)

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

看起来就像这是一个可怜的网站问题。 “手动”执行以下操作:

library(RCurl)
library(XML)

url <- "http://www.machinerytrader.com/list/list.aspx?pg=1&ETID=5&catid=1015&SO=26&mdlx=contains&bcatid=4&Pref=0&Thumbs=1&scf=false&units=imperial"
pg <- getURL(url)
conn <- textConnection(pg)
pg <- readLines(conn)
close(conn)

位于pg的元素[33](在此特定调用中):

pg[33]
[1] "<noscript>Please enable JavaScript to view the page content.</noscript>" 

我通常通过IMPORTHTML功能在Google Spreadsheets中进行快速调试(我实际上更喜欢让Google处理数据导入和转换)并且甚至无法覆盖页。

我尝试使用命令行curlwget,并且(不出所料)得到了相同的结果。

你可能需要走这条路:Scraping websites with Javascript enabled?来获得你需要的东西。不过,我可能会遗漏一些明显的东西。

答案 1 :(得分:0)

在另一个主题上找到答案。基本上,您需要在R中使用relenium包。

解决方案: Scraping javascript website