我已经能够使用简单的HTML结构从网站上抓取数据,并使用Perl模块Web::Scraper从各种标签中检索数据。但是,我遇到了list_filter = ('founded_date','contact')
属性,我无法以通常的方式处理。
标签是:
data-
我需要的部分<img class="slide_image"
src="https://image.slidesharecdn.com/computerassistedsurgery-160629113952/95/computer-assisted-surgery-1-638.jpg?cb=1467200461"
data-small="https://image.slidesharecdn.com/computerassistedsurgery-160629113952/85/computer-assisted-surgery-1-320.jpg?cb=1467200461"
data-normal="https://image.slidesharecdn.com/computerassistedsurgery-160629113952/95/computer-assisted-surgery-1-638.jpg?cb=1467200461"
data-full="https://image.slidesharecdn.com/computerassistedsurgery-160629113952/95/computer-assisted-surgery-1-1024.jpg?cb=1467200461"
alt="COMPUTER ASSISTED SURGERY Something ">
位于属性"https://image.slidesharecdn.com/computerassistedsurgery-160629113952/95/computer-assisted-surgery-1-1024.jpg?cb=1467200461"
之后。我目前的代码是:
data-full
失败并显示错误:
不知道如何处理0 =&gt; undef at /usr/local/share/perl/5.20.2/Web/Scraper.pm第150行。
我该如何解决这个问题?
答案 0 :(得分:6)
TEXT
用于获取元素内的文本。使用@attr
获取属性的值:
use strict;
use warnings 'all';
use 5.010;
use Web::Scraper;
my $scraper = scraper {
process 'img', 'links[]' => '@data-foo';
};
my $result = $scraper->scrape('<img data-foo="foo" data-bar="bar">');
say for @{ $result->{links} };
输出:
foo