在HTML标签内部刮擦数据Perl

问题描述:

我在写一个网页刮板,并且是一位Perl新手。我使用HTML::TreeBuilder来获取我需要的数据,但是我遇到了一个我不知道如何处理的案例。以下是一些示例HTML:在HTML标签内部刮擦数据Perl

<div class="anything" val="20" name="matchup">someUniqueData</div> 

我想从此HTML标记中提取val。我一直在使用findvalues()来完成我的大部分工作,但我不知道这是否可以从标签内部提取数据。我已经掩盖了文档不成功的情况。有这种类型刮擦的简单解决方案吗?

+0

告诉我们,你已经尝试的代码,我们可以从那里帮助你。您可能还想做的不仅仅是“覆盖文档”。有关HTML解析的更多信息,请参阅http://htmlparsing.com/perl –

+0

我还没有尝试过任何东西,因为我知道如何尝试findvalues(),它会将数据获取到标签之外。我查看了整个TreeBuilder文档,但没有看到可行的方法。当我可以询问是否有其他人有这个问题时,我不会搜索现存的每个Perl模块。所以如果你不会有帮助的话,那就去别的地方吧。 – aquemini

+0

查看HTML :: Element中的['attr'](https://metacpan.org/module/HTML::Element#attr)的文档。 – friedo

您需要(使用HTML::TreeBuilder::XPath):

my ($val) = $tree->findvalues('//div[@class="anything"]/@val'); 
+0

CSS选择器等效:'使用Web :: Query'wq';打印wq('

someUniqueData
') - > find('div.anything') - > attr('val');' – daxim