gpt4 book ai didi

jquery - 如何使 pQuery 能够处理格式稍有缺陷的 HTML?

转载 作者:行者123 更新时间:2023-12-03 23:05:03 24 4
gpt4 key购买 nike

pQuery是 jQuery JavaScript 框架到 Perl 的实用移植,可用于屏幕抓取。

pQuery 对格式错误的 HTML 非常敏感。考虑以下示例:

use pQuery;

my $html_malformed = "<html><head><title>foo</title></head><body>bar</body></html>>";
my $page = pQuery($html_malformed);
my $title = $page->find("title");
print "The title is: ", $title->html, "\n";

由于格式错误的 HTML 中存在双“>>”,pQuery 在上例中找不到标题标记。

为了使基于 pQuery 的应用程序更能容忍格式错误的 HTML,我需要在将 HTML 传递给 pQuery 之前对其进行清理,以对其进行预处理。

从上面给出的代码片段开始,清理 HTML 使其能够被 pQuery 解析的最强大的纯 Perl 方法是什么?

最佳答案

我会将其报告为 pQuery 中的错误。这是一个解决方法:

use HTML::TreeBuilder;
use pQuery;

my $html_malformed = "<html><head><title>foo</title></head><body>bar</body></html>>";
my $html_cleaned = HTML::TreeBuilder->new_from_content($html_malformed);
my $page = pQuery($html_cleaned->as_HTML);
$html_cleaned->delete;
my $title = $page->find("title");
print "The title is: ", $title->html, "\n";

这没有多大意义,因为 pQuery已使用HTML::TreeBuilder作为其底层解析机制,但它确实有效。

关于jquery - 如何使 pQuery 能够处理格式稍有缺陷的 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3896220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com