html - 使用 R 从动态网页中提取文本
问题描述
我正在使用本文中的数据编写数据准备教程:https ://www.nytimes.com/interactive/2021/01/19/upshot/trump-complete-insult-list.html#
没有任何文本是硬编码的,一切都是动态的,我不知道从哪里开始。我已经用rvest和xml2包尝试了一些东西,但我什至无法判断我是否正在取得进展。
我在记事本++中使用了复制/粘贴正则表达式来获得这样的表格结构:
目标 | 攻击 |
---|---|
AAA新闻 | 假新闻 |
AAA新闻 | 假新闻 |
AAA新闻 | 彻底的耻辱 |
... | ... |
ZZZ先生 | 真正的疯狂工作 |
但我想展示如何以编程方式完成所有操作(不复制/粘贴)。
我的主要问题如下:通过合理的努力是否有可能?如果是这样,关于如何开始的任何线索?
PS:我知道这可能是重复的,我只是不知道是哪个问题,因为那里有完全不同的方法:\
解决方案
我在本月使用了我在《纽约时报》上的免费文章分配,但这里有一些指导。看起来该网页使用多个脚本来创建和显示该页面。
如果您使用浏览器的开发人员工具并查看网络选项卡,您会发现 2 个 CSV 文件:
- tweets-full.csv 位于此处:https ://static01.nyt.com/newsgraphics/2021/01/10/trump-insult-complete/8afc02d17b32a573bf1ceed93a0ac21b232fba7a/tweets-full.csv
- tweets-reduced.csv 位于此处:https ://static01.nyt.com/newsgraphics/2021/01/10/trump-insult-complete/8afc02d17b32a573bf1ceed93a0ac21b232fba7a/tweets-reduced.csv
看起来简化后的文件创建了上面引用的表格,而 tweets-full 是完整的推文。您可以直接下载这些文件,read.csv()
并根据需要处理这些信息。
在抓取任何网页之前,请务必阅读服务条款。
推荐阅读
- r - 如何在 Azure 上以交互方式运行 Docker 容器
- c++ - 缩小 STL 向量的复杂性
- azure - 专用终结点 - Azure
- python - python并行处理在一个核心上运行所有任务 - 多处理,射线
- laravel - 在 USER 集合中按姓名和姓氏查找用户
- uinavigationcontroller - 弹出 ViewController 时的 UINavigationController 和大标题
- reactjs - 在第二个值更改时设置 Reactjs 下拉 setState
- c# - 在用户控件的标签中显示 Json 反序列化变量的字符串
- apache-kafka - 仅在一个消费微服务上无法进行 AVRO 序列化
- c# - 如何重定向到报表查看器?