忽略HTML :: TreeBuilder输出Perl中的文本
||
我需要忽略或删除所有HTML元素之间的所有文本,以便可以从给定的网页生成空白模板。
我正在使用perl模块HTML :: TreeBuilder和HTML :: Element进行解析。
我已经尝试了文档中提到的ignore_text方法,但是无法提供正确的结果。
我还尝试过将DOMXpath与PHP结合使用来做同样的事情,结果似乎太麻烦了,难以管理。正则表达式可能有效,但对我而言是不得已的方法。
这是我当前代码的一部分,非常基本。底部只是输出到文件。所有代码都起作用,我只需要格式化即可工作,以便生成模板文件。
my $url= \"http://www.example.com\";
my $page = get($url) or die $!;
my $tree = HTML::TreeBuilder->new_from_content($page);
$tree->parse_file($page);
$tree->ignore_text;
$tree->elementify;
open OUTPUT, \"+>\".$body;
my $output = $tree->as_HTML;
print OUTPUT $output;
close OUTPUT;
先谢谢您的帮助!
编辑:我发现了问题-仅当您从物理文件中解析时,忽略文本才有效。我不得不将页面另存为临时文件以进行解析,然后以不带文本的方式输出我想要的方式,然后我只是在底部做了unlink($ tmp)来删除文件。从那以后,我的脚本在读写数据库方面变得越来越复杂,每次我需要创建此临时文件时,都会感到烦恼...
感谢您在下面的回复!
没有找到相关结果
已邀请:
2 个回复
森含械
设置为真实值。
,然后在呼叫
之前确定其设定。 抱歉,这有点长,但我希望对您有所帮助。 这是新代码的快速通过,没有示例页面很难测试:
这是我使用本地文件的快速测试脚本:
输入
:
并输出:
祝好运
屠创氓读叔