我在Perl中有以下命令,它遍历大量变量并从每个页面中提取一定的值/数字。如果该值无效,则返回“错误”
my $output = `curl -s -H "Cookie: $cookie_name=$target" -L "$site"$target | grep -Eo "You have <strong>[0-9]+" | grep -Eo "[0-9]+"` || "Error\n";
以下是页面内容的示例。
... You have <strong>1829</strong> reports ...
我想要返回的只是1829
例如。
是否有更有效的方式来提取这些数据?
答案 0 :(得分:3)
效率不是很高,甚至可能稍微低一些,但是另一种不涉及脱壳的方法是:
use v5.14;
use LWP::Simple;
my $content= get($url) // die "Couldn't get content";
if ($content =~ m/You have <strong>([0-9]+)/) {
print "reports = $1";
} else {
die "Can't parse the page?";
}