问题标签 [html5ever]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - 使用 hyper 和 html5ever 在流中解析 HTML 页面内容
我正在尝试解析 HTTP 请求的 HTML 响应。我使用hyper进行请求,使用html5ever进行解析。HTML 将非常大,我不需要完全解析它——我只需要从标签中识别一些数据,所以我更喜欢流式传输它。从概念上讲,我想做类似的事情:
到目前为止,我想出的是:
这似乎read_to_end
是我想调用响应以读取字节的方法,但我不清楚如何将其通过管道传输到 HTML 文档阅读器......如果这甚至可能的话。
文档parse_document
说要使用from_utf8
或者from_bytes
输入是否以字节为单位(它是)。
似乎我需要从响应中创建一个接收器,但这就是我卡住的地方。我也不清楚如何创建事件来监听我感兴趣的标签开始。
我已经查看了 html5ever 的这个示例,它似乎可以执行我想要的操作并遍历 DOM,但是我无法让这个示例本身运行——要么它已经过时,要么卷须/html5ever 太新。这似乎也将 HTML 解析为一个整体而不是一个流,但我不确定。
是否可以对这些库的当前实现做我想做的事情?
rust - 如何使用 html5ever 解析页面、修改 DOM 并对其进行序列化?
我想解析一个网页,在某些位置插入锚点并再次渲染修改后的 DOM,以便为Dash生成文档集。这可能吗?
从 html5ever 中包含的示例中,我可以看到如何读取 HTML 文件并进行穷人的 HTML 输出,但我不明白如何修改RcDom
检索到的对象。
我希望看到将锚元素 ( <a name="foo"></a>
) 插入到RcDom
.
注意:这是一个关于 Rust 和 html5ever 的问题……我知道如何用其他语言或更简单的 HTML 解析器来做。
rust - 如何获取一个 HTML 标记作为 2 个字符串(开始标记、结束标记),而没有来自 kuchiki 的内容?
我正在用 Rust 编写 HTML 到 Markdown 转换器,使用 Kuchiki 从 html5ever 访问解析树。
对于未知的 HTML 标记,我想提供忽略它们并将它们传递给输出字符串的可能性,但仍然照常处理它们的子级。为此,我需要没有内容的标签的文本表示,但我不知道如何最好地做到这一点。
我能想到的最好的是:
- 克隆节点
- 丢弃它的孩子
- 称呼
node.to_string
- 使用正则表达式“解析”字符串以分隔开始标签和结束标签。
我觉得一定有更好的方法。我不认为 Kuchiki 提供了开箱即用的功能,但我也不知道如何通过 Kuchiki 访问 html5ever API,而且我也没有从 html5ever API 文档中获得它们是否会提供一些功能像这样。
rust - 如何转换卷须到 &str 或字符串?
我正在使用 HTML5ever,并且正在尝试将属性放入 a 中Vec<(String, String>)
(尽管(&str, &str)
也可以)。
不幸的是,html5ever 的属性值在Tendril<UTF8>
s中,而不是String
s(或QualName
s、&str
s 等)。如何将其中一个Tendril
s转换为 s String
?
web-scraping - 如何使用 html5ever 解析页面并找到所有链接?
我想用 html5ever 解析字符串格式的 HTML 并找到这个 HTML 中的所有链接。我知道如何使用 html5ever 解析页面、修改 DOM 并对其进行序列化?, 但是RcDom
已经不存在了。
html - 如何使用 Kuchiki 获取 HTML 文档的所有文本(script/style/noscript 标签除外)?
我正在尝试获取 HTML 页面上的所有文本,不可见文本除外(例如:我不希望在 script/style/noscript 标记中使用文本)。
到目前为止,这是我想出的:
这个想法是第一遍将删除任何script
, style
, 或noscript
标签。然后我可以打电话text_contents
来获取可见的文本。
但是,似乎text_contents
仍在返回内联 Javascript。
我是否误解了 Kuchiki/html5ever API?