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