gpt4 book ai didi

Perl网络爬虫,从只有 "style"标签的DIV中提取内容?

转载 作者:行者123 更新时间:2023-12-05 00:41:09 25 4
gpt4 key购买 nike

我被困在这个问题上并且已经一整天了..我对在 perl 中解析/抓取仍然很陌生,但我认为直到这个..我一直在尝试使用不同的 perl 模块(tokeparser,tokeparser:简单,网络解析器和其他一些)......我有以下字符串(实际上它实际上是一个完整的HTML页面,但这只是显示相关部分..我正在尝试提取“text1”和“text1_a”。 .等等(“text1”等只是作为一个例子放在那里)......所以基本上我认为我需要先从每个中提取这个:

"<span style="float: left;">test1</span>test1_a"

然后解析它以获得2个值..我不知道为什么这给我带来了这么多麻烦,因为我认为我可以在 tokeparser:simple 中做到这一点,但我似乎无法返回 DIV 内部的值,我想知道是不是因为它包含另一组标签(标签)

字符串(代表 html 网页)
<div id="dataID" style="font-size: 8.5pt; width: 250px; color: rgb(0, 51, 102); margin-right: 10px; float: right;">
<div style="width: 250px; text-align: right;"><span style="float: left;">test1</span>test1_a</div>
<div style="width: 250px; text-align: right;"><span style="float: left;">test2</span>test2_a</div>
<div style="width: 250px; text-align: right;"><span style="float: left;">test3</span>test3_a</div>

我在 perl web 解析器模块中的尝试:
my $uri  = URI->new($theurl);

my $proxyscraper = scraper {
process 'div[style=~"width: 250px; text-align: right;"]',
'proxiesextracted[]' => scraper {
process '.style', style => 'TEXT';
};
result 'proxiesextracted';

我只是有点盲目地试图理解 web:parser 模块,因为它基本上没有文档,所以我只是从模块中包含的示例和我在互联网上找到的示例中拼凑起来..任何建议非常感谢。

最佳答案

如果你想要一个 DOM 解析器(更容易使用树浏览,稍微慢一些)。试试 HTML::TreeBuilder

HTML::Element手册页(包括模块)

Note also that look_down considers "" (empty-string) and undef to be

different things, in attribute values. So this:

  $h->look_down("alt", "")


这使我们得到您的答案:
use HTML::TreeBuilder;

# check html::treebuilder pod, there are a few ways to construct (file, fh, html string)
my $tb = HTML::TreeBuilder->new_from_(constructor)

$tb->look_down( _tag => 'div', style => '' )->as_text;

关于Perl网络爬虫,从只有 "style"标签的DIV中提取内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3252290/

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