问题标签 [mojo-dom]

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.

0 投票
1 回答
918 浏览

perl - 用`替换任何标签内容中的所有空格

任务

将任何标签内容中的所有空格替换为 .

y.html(示例文件)

我试过的

上述脚本的结果

我没有得到想要的输出,它&nbsp;也在添加标签(例如:)</span&nbsp;,我希望只在内容上完成。

PS:我试过了Mojo::DOM,但没必要用,你可以试试其他的解析器,还是想知道我的代码有什么问题?

0 投票
1 回答
263 浏览

perl - 用 Perl 抓取 HTML 文件,只返回内容,按顺序

使用 HTML::TreeBuilder - 或 Mojo::DOM - 我想抓取内容但保持有序,以便我可以将文本值放入数组中(然后用变量替换文本值模板目的)

但这在 TreeBuilder

不返回顺序——当然散列是没有顺序的。那么,如何从根向下访问树并保持返回值的顺序呢?递归地走树?本质上,我想对每个元素都使用“as_text”方法。(遵循这个好主意,但我需要所有元素)

0 投票
2 回答
182 浏览

html - 使用 CSS3 进行 Doctype 嗅探,特别是使用 Mojo::DOM

我可以使用Mojo::DOM及其 CSS3 选择器来找出 HTML 文档的 DOCTYPE 吗?与我的另一个问题相关,我应该如何使用 Mojo::UserAgent 处理 HTML META 标签?在我想设置文档的字符集的地方,我需要知道要查看的内容,而doctype 嗅探似乎是一种方法。当文档设置覆盖服务器设置(或非设置)时,HTML 和 HTML 5 对 HTML 中的字符集具有不同的元标记。

我完成任务没有问题,因为我可以获取原始响应并使用正则表达式来查看 DOCTYPE。由于浏览器 DOM 似乎能够获取 DOCTYPE,因此我被认为应该能够获取它的想法所感染。然而,缺乏例子让我认为没有人按照我认为我应该做的方式去做。

我尝试了很多愚蠢的方法,但我的 CSS 功夫很弱:

当我转储$dom对象时,我在树中看到 DOCTYPE:

现在我该怎么做?

0 投票
2 回答
147 浏览

perl - Mojo::DOM - 如何返回多个属性

我是 Mojolicious 的新手,要在 ap 标签中找到带有类模块的链接的标题,例如

我使用以下代码:

相当粗糙,但它的功能。我现在还想不通(对我来说可能太晚了)是如何返回 href 和链接文本。请让我摆脱痛苦。

0 投票
1 回答
861 浏览

html - Mojo::DOM HTML 提取

我试图从一个结构完美的网页中提取相当多的数据,并在Mojo::DOM方法上苦苦挣扎。如果有人能指出我正确的方向,我将不胜感激。

带有有趣数据的截断 HTML 如下:

我现在拥有的是

这种混乱data-story-id从 src 和标头值中提取(与 href 值测试相同),但我所有其他尝试都失败了。

未提取“post_rating_count 控制标签”。我可以通过搜索a.to-comments和返回获得第一个 href 值attr('href'),但由于某种原因,它也会返回我在段末尾的链接值class="post_comments_count label to-comments"。标题值提取也是如此。

最后,我正在寻找一个具有以下字段的数据结构的数组:

  • 故事ID(这是成功的)
  • href (不知何故,匹配比需要的更多。)
  • 标头(不知何故,匹配超出了需要。)
  • 字符串形式的标签列表(不知道怎么做)

更何况,我觉得可以优化代码,让它看起来更好一点,但我的功夫没有那么强。

0 投票
1 回答
189 浏览

html - 使用 Mojo::DOM 进行 CSS 选择

这是一个多学科的问题,所以答案可能不是纯粹的 CSS。

我正在解析一个大表,我的目标是只检索<b></b>标签之外的文本。我能够选择行,但坚持如何只选择粗体标记之外的文本。

HTML

代码

输出

期望的输出

我可以使用正则表达式来提取文本,但这不是一个理想的解决方案。有没有办法只选择非粗体文本?

0 投票
1 回答
180 浏览

perl - 在格式良好的 HTML 中使用 Perl 和 Mojo::DOM 定位 HTML 中的单个元素

Perl 的相对初学者,在这里我的第一个问题是,尝试以下操作:

我正在尝试从大型在线数据集 (Eur-Lex) 中检索某些信息,其中每个 HTML 文档都是格式良好的 HTML,并且具有常量元素。每个 HTML 文件都由其 Celex 编号标识,该编号作为脚本的参数提供(请参阅下面的我的 Perl 代码)。HTML 数据如下所示(仅显示我感兴趣的部分):

我对“PPClass_Contents” div id 中包含的信息感兴趣,它由 3 个元素组成:

基于上面的 HTML,我想获取这 3 个主要元素的子元素,使用 Perl 和 Mojo,得到类似的结果(单行文本文件,由制表符分隔的 3 个组,一个 grup 中的多个子元素被分隔通过管道字符,如下所示:

“descriptors”、“Subjects”和“Designation_levels”元素(这三个主要组的子项)可以从 1 到“n”,数量不固定,也不事先知道。

我有以下代码,它确实打印出有趣部分的纯文本,但我需要处理各个元素并将它们打印在一个新文件中,如上所述:

编辑(添加):您可以使用两个参数尝试我的 Perl 脚本:

  • lang_code(“DE”、“EN”、“IT”等)

  • Celex 编号(例如:E2014C0303、52015BP2212、52015BP0930(48)、52015BP0930(36)、52015BP0930(41)、E2014C0302、E2014C0301、E2014C0271、E2014C0134)。

例如(如果您将我的脚本命名为“clookup.pl”): $ perl clookup.pl EN E2014C0303

那么,如何使用 Mojo::DOM 处理如上所述的单个元素(数量未知)?

或者,有没有更简单或更快的东西(使用 Perl)?

0 投票
2 回答
158 浏览

perl - 使用 Mojo::DOM 提取标题后未标记的文本

我正在尝试使用 Mojo::DOM 从 HTML 文件中提取一些没有标签的文本(我是新手)。特别是 H2 标题后的描述文本(文件中还有其他标题)。

我已经能够找到标题,但不知道如何访问之后的文本,因为我没有标签可以跳转到......

谁能向我推荐一种如何获取“此文本是描述”字符串的方法?

0 投票
1 回答
98 浏览

perl - Mojo::DOM 和 Text 删除空格的方法

我有以下代码使用 Mojo::DOM 来获取文本

而 h1 下的文本如果采用以下格式:

$text 带有标题和尾随空格

我可以做这样的事情来删除标题和尾随空格

但我想知道是否可以使用 mojolicious 功能来做到这一点?

0 投票
1 回答
49 浏览

perl - Mojo::DOM 在特定的前一段之后提取段落

只是第一次使用这个 Mojo::DOM 并且无法根据之前的标签提取信息。寻找一种获取“描述”的方法。