问题标签 [html-tree]

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 投票
3 回答
2257 浏览

html - 如何使用 HTML::TreeBuilder 仅查找直系后代?

假设我有一个这样的 HTML 树:

如何选择<li>标有 的元素(*)?它们是第一个<ul>元素的直接后代。

这是我找到第一个<ul>元素的方法:

现在我有了$ul,但是当我做类似的事情时:

它还查找<li>隐藏在 HTML 树中更深的元素。

如何仅找到作为第一个元素<li>的直接后代的<ul>元素?我的数量不详。(我不能像示例中那样只选择前 4 个)。

0 投票
1 回答
4489 浏览

html - 用于提取链接的 HTML Treebuilder XPath

我正在编写一个基本脚本,它只是从网页中提取所有链接。它是用 Perl 编写的,并使用了 WWW::Mechanize 和 HTML::Treebuilder::Xpath 模块,这两个模块都是我通过 CPAN 安装的。

我知道只使用 WWW::Mechanize 就可以轻松完成,但也想学习使用 XPath 来完成。

因此,该脚本将解析整个网页,并检查每个锚标记的 href 属性,提取链接并将其打印到控制台/将其写入文件。请注意,在下面的脚本中,我没有使用 use strict,因为我写这个只是为了澄清和理解使用 XPath 遍历 HTML 树的概念。

这是脚本:

它给出了一个错误:

我已将脚本修改如下:

错误:

我不确定如何打印 href 属性的值。

$nodes 应该包含所有 href 属性的列表?我相信它不存储值而是指向它的指针?

我尝试搜索和阅读示例,但我不知道如何去做。

谢谢。

0 投票
1 回答
638 浏览

perl - perl 中的 HTML::TreeBuilder->new_from_url() 不起作用

使用 HTML::TreeBuilder->new_from_url() 想去一个网站说https://abc.com/index.html并想从那个 html 页面显示一些值。

https://abc.com/index.html 要求用户认证(test/test123 是用户名和密码)。我使用了以下代码:文件名:finaldisplay.pl

当我从命令行运行文件时出现错误“无法在 @INC 中找到 auto/HTML/TreeBuilder/new_from_ur.al(@INC 包含:C:/Per l/lib C:/Perl/site/lib。)在 finaldisplay.pl 第 8 行"

0 投票
1 回答
462 浏览

html - perl 脚本的 HTML 解析器

我的代码没有打印任何输出。$tree->find("p")正在返回 NULL。

0 投票
2 回答
679 浏览

perl - Perl 的 HTML::Element - 仅将后代转储为 HTML

我在尝试输出我正在解析的匹配节点的内容时遇到问题:

HTML::TreeBuilder::XPath用来查找节点(这个类只有一个 div):

它找到了节点(HTML::Element我相信返回),但也$description->as_HTML包含了元素本身——我只希望元素中包含的所有内容都是 HTML:

我显然可以用正则表达式把它去掉,但这感觉很乱,我敢肯定我只是在某个地方缺少了一个函数来做它?

0 投票
1 回答
140 浏览

perl - 使用 HTML::TreeBuilder 提取正文中不属于标签的文本

我有一些丑陋的 html 通过电子邮件发送到我的程序,如下所示:

...为简洁起见,将其余部分剪掉。

我可以使用 HTML::TreeBuilder 拉出表格元素,但无法弄清楚如何在不诉诸其他方式的情况下从上方拉出“名称:”和“查询条款”。

上面的 $root->dump 看起来像:

那么有没有办法在@0.1.0.2 和@0.1.0.4 之间获取裸文本

谢谢!托德

0 投票
1 回答
380 浏览

perl - 使用 HTML::TreeBuilder 更新 HTML 文件中的列值

我有一个包含多个表的 HTML 文件(所有表都有相同的列数和相同的列名)。这些表格由其他 HTML 标记分隔。

对于每个表中的每一行,我想更改单元格 1 和单元格 3 的值。

这是我到目前为止所拥有的(感谢@depesz):

它非常适合遍历 HTML 文件中的所有行。我只是不确定如何更改第 1 列和第 3 列中的文本。

0 投票
1 回答
639 浏览

linux - 安装 HTML::TreeBuilder::XPath 失败

我正在尝试安装 ** HTML::TreeBuilder::XPath of version 0.13 ** 但它失败了。

任何人都可以建议可能是什么原因。

0 投票
2 回答
342 浏览

perl - perl html treebuilder如何处理错误情况

任务非常简单:访问一个 url 并根据结果解析它。如果出现错误(404、500 等),请采取适当的措施。最后一块是我遇到的问题。
我列出了我当前使用的两段代码。较长的(LWP+TreeBuilder)适用于两种情况;较短的(TreeBuilder)适用于第一个条件,但不适用于错误条件。如果我使用 TreeBuilder 并且站点返回 404 或其他错误,则脚本将直接退出!有任何想法吗 ?

更长的代码有效

较短的没有

0 投票
1 回答
1126 浏览

html - 使用 Html::TreeBuilder::XPath 打印表格内容

我想从 html 文件中提取所有表格并以下列方式打印它们的内容,每个单元格由 分隔\t,每行由 分隔\n,每个表格由 分隔 \n\n。以下是我的脚本,当我将其更改为 tr 上的 findvalues 时,将整个 tr 作为一个元素插入,我什至尝试了其他方法,例如 findnodes_as_strings ($path),我想将其修改为上述结构。