在HTML标签内部刮擦数据Perl
问题描述:
我在写一个网页刮板,并且是一位Perl新手。我使用HTML::TreeBuilder
来获取我需要的数据,但是我遇到了一个我不知道如何处理的案例。以下是一些示例HTML:在HTML标签内部刮擦数据Perl
<div class="anything" val="20" name="matchup">someUniqueData</div>
我想从此HTML标记中提取val
。我一直在使用findvalues()
来完成我的大部分工作,但我不知道这是否可以从标签内部提取数据。我已经掩盖了文档不成功的情况。有这种类型刮擦的简单解决方案吗?
答
您需要(使用HTML::TreeBuilder::XPath
):
my ($val) = $tree->findvalues('//div[@class="anything"]/@val');
+0
CSS选择器等效:'使用Web :: Query'wq';打印wq('
someUniqueData
') - > find('div.anything') - > attr('val');' –
daxim
告诉我们,你已经尝试的代码,我们可以从那里帮助你。您可能还想做的不仅仅是“覆盖文档”。有关HTML解析的更多信息,请参阅http://htmlparsing.com/perl –
我还没有尝试过任何东西,因为我知道如何尝试findvalues(),它会将数据获取到标签之外。我查看了整个TreeBuilder文档,但没有看到可行的方法。当我可以询问是否有其他人有这个问题时,我不会搜索现存的每个Perl模块。所以如果你不会有帮助的话,那就去别的地方吧。 – aquemini
查看HTML :: Element中的['attr'](https://metacpan.org/module/HTML::Element#attr)的文档。 – friedo