【发布时间】:2018-04-19 22:15:54
【问题描述】:
因为可以下载您的 Facebook 数据存档的副本,它提供了您拥有的每个单独聊天的 html 文件。我希望能够将其放入数据框中以进行进一步分析。
其中一个文件的示例如下所示:
我已经在此处上传了该 html 文件的示例:https://gist.githubusercontent.com/eldenvo/182efcd870f74d715b202f3ccdae335e/raw/1b53610459790489efb43ab6caa0f15103d391a1/facebook-message.html
我的理想是将数据放入包含以下列的数据框中:发件人、消息、时间。
所以使用
library(rvest)
doc <- "https://gist.githubusercontent.com/eldenvo/182efcd870f74d715b202f3ccdae335e/raw/1b53610459790489efb43ab6caa0f15103d391a1/facebook-message.html"
doc %>% read_html()
返回
#> {xml_document}
#> <html>
#> [1] <head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n<base href="../">\n<style type="text/c ...
#> [2] <body>\n<a href="html/messages.htm">Back</a><br><br><div class="thread">Conversation with p1, p2<div class="message ..
并使用 Chrome 中的选择器工具尝试提取更多内容:
doc %>% read_html() %>% html_node(xpath = '/html/body/div/div[1]')
#> {xml_node}
#> <div class="message">
#> [1] <div class="message_header">\n<span class="user">p1</span><span class="meta">Monday, 19 March 2012 at 23:29 UTC</sp ...
或
doc %>% read_html() %>% html_node(xpath = '/html/body/div/p/text()') %>% html_text()
#> [1] "I didn't see your message before, i'm sorry that i didn't answer. Next time i promise !!"
我对@987654327@ 或rvest 不是很熟悉,所以我不确定将完整的消息列表和相关信息提取到data.frame 中的最佳方法。
【问题讨论】:
标签: html r web-scraping rvest