【问题标题】:How can I scrape data from this website (multiple webpages) using R?如何使用 R 从该网站(多个网页)中抓取数据?
【发布时间】:2015-09-22 08:58:14
【问题描述】:

我是从网站抓取数据的初学者。我似乎很难使用 XML 或其他包来解释 html 的结构。 谁能帮我从这个网站下载数据?

http://wszw.hzs.mofcom.gov.cn/fecp/fem/corp/fem_cert_stat_view_list.jsp

这是关于来自中国的投资。字符集是中文的。

到目前为止我已经尝试过:

library("rvest")

url <- "http://wszw.hzs.mofcom.gov.cn/fecp/fem/corp/fem_cert_stat_view_list.jsp" 

firm <- url %>% 
  html() %>% 
  html_nodes(xpath='//*[@id="Grid1MainLayer"]/table[1]') %>% 
  html_table() 

firm <- firm[[1]] head(firm)

【问题讨论】:

  • 你试过什么代码。 SO上有数百个这样的例子,网络上有数千个。到目前为止,您为此付出了哪些努力?
  • 对不起,我没有尝试很多代码。 library("rvest") url &lt;- "http://wszw.hzs.mofcom.gov.cn/fecp/fem/corp/fem_cert_stat_view_list.jsp" firm &lt;- url %&gt;% html() %&gt;% html_nodes(xpath='//*[@id="Grid1MainLayer"]/table[1]') %&gt;% html_table() firm &lt;- firm[[1]] head(firm)
  • 再试一次:url&lt;-html("http://wszw.hzs.mofcom.gov.cn/fecp/fem/corp/fem_cert_stat_view_list.jsp")selector_name&lt;-"tr.listTableBody td div"fnames&lt;-html_nodes(url, selector_name) %&gt;% html_text()head(fnames)变量搞砸了。我怎样才能把它们变成一张桌子? @hrbrmstr @Lorenzo Rossi

标签: r web-scraping rvest


【解决方案1】:

您可以尝试使用名为 readHTMLTable 的 XML 包中的函数,该函数应该下载页面中的所有表格并将其格式化为 data.frame。

library(XML)
all_tables = readHTMLTable("http://wszw.hzs.mofcom.gov.cn/fecp/fem/corp/fem_cert_stat_view_list.jsp")

那么由于您链接的页面中只有一个表格,因此应该足以获取第一个元素:

target_table = all_tables[[1]]

【讨论】:

  • 谢谢!我试过这段代码,它不起作用。它给出了一系列变量的结果。它还给出了无法识别的中文代码,我该如何阅读下一页中的表格?
  • 我也试过r-bloggers.com/using-rvest-to-scrape-an-html-table [code] library("rvest") url wszw.hzs.mofcom.gov.cn/fecp/fem/corp/…"firm % html() %>% html_nodes( xpath='//*[@id="Grid1MainLayer"]/table[1]') %>% html_table() Firm
猜你喜欢
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 2018-05-23
  • 1970-01-01
相关资源
最近更新 更多