【问题标题】:Null results from readHTMLTable in RR中readHTMLTable的空结果
【发布时间】:2014-04-08 08:56:07
【问题描述】:

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

网址 = 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)

任何帮助将不胜感激!

不要

【问题讨论】:

  • 你的第一行给了我一个 0 的列表。
  • 是的,这绝对是问题的根源,但我不知道为什么。我将编辑原始问题以明确说明。
  • 好像表格是用javascript生成的,有点难度,但是搜索一下,可能会得到一些有用的代码

标签: xml r web-scraping


【解决方案1】:

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

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 电子表格中进行快速调试(我实际上更喜欢让 Google 处理数据导入和转换), 甚至无法抓取页面。

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

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

【讨论】:

    【解决方案2】:

    在另一个线程上得到了答案。基本上,你需要使用 R 中的 relenium 包。

    解决方案: Scraping javascript website

    【讨论】:

      猜你喜欢
      • 2015-01-06
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-28
      • 2016-08-06
      相关资源
      最近更新 更多