【发布时间】:2012-03-22 19:15:45
【问题描述】:
我正在尝试使用 perl 模块 Web::Scraper 解析一些 html 标记,但 似乎我在使用 perl 时无能。我想知道是否有人可以在我的代码中查找错误...:
这是我要解析的 HTML(li 标签内的 2 个 url):
<more html above here>
<div class="span-48 last">
<div class="span-37">
<div id="zone-extract" class="123">
<h2 class="genres"></h2>
<li><a href="**URL_TO_EXTRACT_1**">1</a></li>
<li><a class="sel" href="**URL_TO_EXTRACT_2**">2</a></li>
<li class="first">Pàg</li>
</div>
</div>
</div>
<more stuff from here>
我正在尝试获取:
ID:1 链接:URL_TO_EXTRACT_1
ID:2 链接:URL_TO_EXTRACT_2
使用这个 perl 代码:
my $scraper = scraper {
process ".zone-extract > a[href]", urls => '@href', id => 'TEXT';
result 'urls';
};
my $links = $scraper->scrape($response);
这是我尝试过的无限 process 组合之一,有两个不同的结果:空返回,或代码内的所有 url(我只需要 zone-extract 内的链接)。
通过 mob 的贡献解决... #zone-extract 代替 .zone-extract :)
【问题讨论】:
-
不是
.zone-extract用于具有class="zone-extract"属性的元素吗?对于id="zone-extract",我想你会想要#zone-extract,不是吗? -
感谢 mob 你是对的,它现在可以工作了! :P
标签: perl