繁体   English   中英

Perl快速HTML提取

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM