在 R 中解析 HTML 文件

2023-12-21

我想从网站读取 HTML 文件。具体来说,我想从 gutenberg.org 阅读 HTML 格式的书籍。每章的标题用标签“h2”标记,每章的内容在“h2”之后的段落标签“p”中。使用 XML 包,我可以获得每个标签的值或完整的 HTML 代码。

以下是使用 George Elliot 的 Middlemarch 的示例代码:

library(XML)

doc.html = htmlTreeParse('http://www.gutenberg.org/files/145/145-h/145-h.htm',
                         useInternal = TRUE)
doc.value <- xpathApply(doc.html, '//h2|//p', xmlValue)
doc.html.value <- xpathApply(doc.html, '//h2|//p')

doc.value 包含一个列表,其中每个元素都是标签的内容,但我不知道是 h2 标签还是 p 标签。另一方面,doc.html.value 包含一个列表,其中包含每个标签的 html 代码。这为我提供了它是“h2”还是“p”标签的信息,但它还包含许多我不需要的额外代码(如样式信息等)。

我的问题:是否有一种简单的方法可以仅获取标签的类型和标签的值,而不获取与其关联的其他信息?


查看文档xmlValue表明还有另一个函数,其名称为xmlName,它仅提取标签的名称。使用这两个,可以计算出你想要的:

doc.html.name.value <- xpathApply(doc.html, '//h2|//p', function(x) { list(name=xmlName(x), content=xmlValue(x)); })

> doc.html.name.value[[1]]
$name
[1] "h2"

$content
[1] "\r\nGeorge Eliot\r\n"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中解析 HTML 文件 的相关文章

随机推荐

  • 使用 cxf 和 java 第一种方法编写异步服务

    我需要使用 cxf 和 java 第一种方法创建一个异步 Web 服务 但我无法 找到任何可以告诉我如何执行此操作的网络资源 网站吗 您能告诉我如何使用 CXF 和 java 第一种方法编写异步 Web 服务吗 Thanks Shekhar
  • FMDB开放数据库

    我正在尝试打开资源中项目中的数据库 问题是好像找不到数据库文件 我尝试使用完整路径 它有效 但这不是一个好的解决方案 我现在想知道如何打开它 我正在使用这段代码 db FMDatabase databaseWithPath bbdd sql
  • htaccess 从 url 中删除字符并重定向

    我想脱衣 来自网址 例子 mysite com something想要重定向到mysite com something 通过启用 mod rewrite 和 htaccesshttpd conf然后将此代码放入您的 htaccess und
  • Select2:如何防止标签排序

    当用户选择许多项目 标签 时 它们会自动按字母顺序排序 如何使用Select2 4 0防止自动排序并保留用户的顺序 Update 提到的 可能的重复问题 适用于旧版本的 Select2 v3 我询问版本 4 它与旧版本不同 并且提到的答案不
  • flake8 抱怨过滤器子句中的布尔比较“==”

    我在 mysql 数据库表中有一个布尔字段 table model class TestCase Base tablename test cases obsoleted Column obsoleted Boolean 要获取所有未过时测试
  • 本地修改数据的 Firebase 同步:处理错误和全局状态

    我有两个相关问题Firebase 网络平台 https www firebase com docs web s 将本地修改的数据同步到服务器 https www firebase com docs web guide offline cap
  • 不可变的@ConfigurationProperties

    Spring Boot 是否可以拥有不可变 最终 字段 ConfigurationProperties注解 下面的例子 ConfigurationProperties prefix example public final class My
  • 在xml中引用xsd时xsl转换问题

    我对 XSL 相当陌生 需要有关转换问题的帮助 我有一个由 XSD 描述的 XML 文件 我使用 XSL 文件将 XML 转换为 HTML 我想在 XML 文件中引用 XSD 但是当我这样做时 XML 不会被转换 XML 示例
  • 您可以将宽度应用于 :before/:after 伪元素 (content:url(image)) 吗?

    这是我最近的问题的补充 是否可以使用伪元素使包含元素环绕绝对定位元素 如clearfix https stackoverflow com questions 14977324 is it possible to use pseudo ele
  • Android:进度对话框在加载时更改 ProgressDialog.setMessage()

    我希望有人可以帮助我弄清楚如何仅使用一个虚拟计时器来更改进度对话框中的设置消息对话框 该虚拟计时器通过字符串数组或任何其他方式循环 例如 在加载时 它可以说正在加载 gt 构建 gt 渲染 gt 等 就像一个 1 2 秒计时器 这只是为了我
  • 为什么 DYLD_LIBRARY_PATH 没有在这里传播?

    我有一个简单的 C 程序 我试图运行该程序 该程序与我之前构建的 Boost Thread 库的版本链接 我似乎无法理解运行时库路径在 OS X 上的行为方式 由于我的 Boost 库没有RPATH 相对安装名称 https develop
  • printf 双精度数的舍入行为

    有人可以解释这种行为吗 我很清楚浮点数的机器级表示 这似乎与 printf 及其格式有关 这两个数字都用浮点表示法精确表示 检查 乘以 64 给出一个整数 include
  • 如何将音频文件从android客户端发送到servlet服务器

    我想将音频文件 mp3 文件从 android 客户端发送到 servlet 服务器并将其保存在某个位置 如果我在该位置播放保存的 mp3 文件 它应该可以播放 我的问题是有没有办法将 mp3 文件直接从客户端发送到服务器并在 servle
  • 防病毒软件正在阻止 nodemailer - 错误:证书链中的自签名证书

    我正在使用 Nodemailer 发送电子邮件 但我的防病毒软件阻止了 Nodemailer 当我关闭防病毒软件时 发送电子邮件没有问题 有没有可能的方法使用nodemailer发送电子邮件而不禁用防病毒软件 const transport
  • 是否可以开发具有蓝牙功能的 iOS 应用程序?

    以下情况可能吗 假设我有一个具有蓝牙功能的秤 当我打开它时 它会通过 BT 发送重量 从技术上讲是否可以开发一款与体重秤配对并从中接收数据的 iOS 应用程序 据苹果公司称 技术问答 QA1657 使用外部 带蓝牙的配件框架 设备 http
  • 如何在 JavaScript 中围绕折线绘制多边形?

    我想围绕折线绘制一个多边形 在我的例子中 折线是 Google 地图方向 我需要在 Google 地图画布内显示其周围的多边形 First 对于偏移 我使用 JavaScript Clipper 库 我有以下折线 路线 我使用 Clippe
  • 在php中将地球公里转换为弧度

    我正在尝试将地球公里转换为弧度 我知道这个问题已经在其他地方得到了回答 但所有这些答案似乎都没有正确回答 到目前为止我所做的是 radians km 6371 6371 is the radius of earth in Km 它是否正确
  • 当数据库提供 ID 时添加新的 Ember.js 对象/记录

    我正在尝试 Ember js Node js 和 MongoDB 我的思路基于 Ember 网站上的精彩视频 使用 Node js Express 和 MongoDB 创建 REST API 我在 Ember js 方面遇到了障碍 试图让我
  • Django:如何重写authenticate()方法?

    我用的是自定义的User 我有一个email verified该用户的字段 我希望当用户登录时 如果此字段为false 我做不到views py因为用户可以从各种来源登录 Django 站点 也可以从 REST API 登录 整个目的是避免
  • 在 R 中解析 HTML 文件

    我想从网站读取 HTML 文件 具体来说 我想从 gutenberg org 阅读 HTML 格式的书籍 每章的标题用标签 h2 标记 每章的内容在 h2 之后的段落标签 p 中 使用 XML 包 我可以获得每个标签的值或完整的 HTML