[英]Perl fast HTML extract
我想从几个HTML页面中提取数据,但对HTML提取不熟悉。 我有一个工作代码,可以读取整个页面的源代码,然后使用正则表达式删除不需要的部分,但是这似乎很慢。
我正在阅读财务信息,并且只想从每一页中提取一个数字,因此实际上并不想每次都尽可能阅读整个页面。
这就是我在Perl中所拥有的:
use LWP::Simple;
my $mult;
my $url = 'http://www.wikinvest.com/stock/Apple_(AAPL)/Data/Net_Income/2014/Q1';
$content = get($url);
$content =~ s/\R//g; # remove linebreaks
$content =~ s/.*\<div class="nv_lefty" id="nv_value">//; # remove everything before tag
$content =~ s/\<.*//g; # remove everything after <...
if ($content =~ s/billion//) {$mult = 1e9;}
elsif ($content =~ s/million//) {$mult = 1e6;}
else {$mult = 1;}
$content =~ s/[^\d.-]//g; # keep numbers, commas and - only
$content = $content * $mult;
get($url)
命令的速度很慢,因为它会提取大量数据,而我只对单个数字感兴趣。 有更快的方法吗? 我查看了HTML :: TableExtract,但我认为提取的数字不在标准HTML表格中。 也不确定是否会更快。
看一下Web :: Scraper而不是使用正则表达式。 这样的事情可以为您节省很多时间,并且不易出错。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.