gpt4 book ai didi

perl dom 机械化 xpath

转载 作者:行者123 更新时间:2023-12-03 15:38:13 25 4
gpt4 key购买 nike

我正在尝试使用机械化从 metacriti* 网站抓取一些数据,但我没有得到任何输出

这是我的带有 url 示例的代码:

my $metaURL = "http://www.metacriti*.com/game/pc/dota-2";

my $mech = WWW::Mechanize->new();
$mech->get($metaURL) or die "unable to get $metaURL";

my $tree = HTML::TreeBuilder::XPath->new;
$tree->parse($mech->content);

my @nodes = $tree->findnodes(q{//*[@id="main"]//a[contains(./@href, "user-reviews")]/span[@class="score_value"]});

print $_->string_value, "\n" foreach(@nodes); # text
@nodes数组似乎是空的,我的 xpath 看起来不错,因为我在另一个工作脚本中使用了相同的语法,我真的无法弄清楚这个有什么问题......

此外,由于这只是一个开始,也许您可​​以建议我另一种抓取/解析网站的简单方法...如果有更好的方法:)

先感谢您

最佳答案

如果您搜索 $tree->findnodes( '//div[@id="main"]')->[0]->as_HTML,HTML 似乎非常糟糕。你得到一个非常空的 div:

<div class="col main_col" id="main"><div itemscope="itemscope" itemtype="http://schema.org/SoftwareApplication"></div></div>

这确实不包含任何 a ,这解释了你得到的结果。

我尝试使用 tidy漂亮地打印 HTML,但它在文件上显示。

如果您忘记 div 并使用 q{//a[contains(./@href, "user-reviews")]/span[@class="score_value"]}你会得到结果, 7.9在这种情况下。

关于perl dom 机械化 xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19271173/

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