【发布时间】:2019-02-01 11:03:01
【问题描述】:
我对 R 相当陌生(尤其是使用它进行网页抓取),因此非常感谢任何帮助。我目前正在尝试挖掘一个网页,其中包含多个门票列表并列出了其中一些的其他详细信息(例如具有受损视图或仅供儿童使用的门票)。我想提取这些数据,为不包含这些详细信息的票务列表留下空格或 NA。
由于原始网站需要使用 RSelenium,因此我尝试以更简单的形式复制 HTML。如果缺少任何信息,请告诉我,我会尽力提供。谢谢!
到目前为止,我已尝试采用此处提供的解决方案:rvest missing nodes --> NA 和 htmlParse missing values NA,但我无法在我的示例中复制它们,因为我收到错误消息
UseMethod("xml_find_all") 中的错误: 没有适用于“字符”类对象的“xml_find_all”方法
我想我确实需要 rvest 和 lapply 的组合,但我似乎无法使其工作。
library(XML)
library(rvest)
html <- '<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div class = "listing" id = "listing_1">
<em>
<span class="listing_sub3">
Limited view
</span>
</em>
</div>
<div class = "listing" id = "listing_2">
<em>
<span class="listing_sub2">
Other text I am not interested in
</span>
</em>
</div>
<div class = "listing" id = "listing_3">
<div>
<em>
<span class="listing_sub3">
Limited view
</span>
</em>
</div>
<div>
<span class="listing_sub1">
Ticket for a child
</span>
</div>
</div>
</body>
</html>'
page_html <- read_html(html)
child <- html_nodes(page_html, xpath ="//*[@class='listing_sub1']") %>%
html_text()
viewLim <- html_nodes(page_html, xpath ="//*[@class='listing_sub3']") %>%
html_text()
id <- html_nodes(page_html, xpath = "//*[@class='listing']") %>%
html_attr( ,name = "id")
我希望得到一个类似这样的表格:
listing child viewLim
1 F T
2 F F
3 T T
【问题讨论】:
标签: r web-scraping rvest