从页面

时间:2015-07-07 18:36:04

标签: perl web-scraping

我在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例如。

是否有更有效的方式来提取这些数据?

1 个答案:

答案 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?";
}