2011-03-30 6 views
0

HTMLページからデータを抽出する方法このWebサイトの提案抽出しますが、何も動作しません。Perlを使用してHTMLページからデータを抽出する方法このWebサイトですべての提案を試みて失敗しました

use HTML::TableExtract; 
use LWP::Simple; 

my $html_string = get('http://www.barchart.com/commodityfutures/Australian_Dollar_Futures/options/A6'); 

$te = HTML::TableExtract->new(headers => [qw(Strike Open High Low Current Change Time  Prem ($))]); 
$te->parse($html_string) or die "Didn't find table"; 

foreach $row ($te->rows) { 
    print join(',', @$row), "\n"; 
} 

が、これは任意のヘルプは、おかげで理解されるであろう動作しませんでした:私は、私が提案ポストを試みた8つの見出しと8つのカラムを持つWebサイトからオプション情報を抽出しようとしています。

use Data::Dumper; 
$a = [qw(Strike Open High Low Current Change Time  Prem ($))]; 
print Dumper($a); 

は、あなたが得る:あなたがしなければ

+4

あなたがあれば、「それは動作しませんでした」よりも多くの情報を提供する必要があります。誰でもあなたを助けることです。何が起こった? –

答えて

4

問題は、彼らが行うようにそれが見えるかもしれません:)列見出しがテーブルにものと一致していないということですが、

$VAR1 = [ 
     'Strike', 
     'Open', 
     'High', 
     'Low', 
     'Current', 
     'Change', 
     'Time', 
     'Prem', 
     '($)' 
    ]; 

最後の2つの列に注意してください。あなたはおそらく必要なのである。一つはPerlを使用して、任意のWebページのHTMLデータを抽出することができ、次のように

$te = HTML::TableExtract->new(headers => [ "Strike", "Open", "High", "Low", 
    "Current", "Change", "Time", "Prem (\$)" ]); 
+0

Andersさん、ありがとうございますが、それはうまくいきませんでした。私は最後に、動作した別の提案を見つけました。 HTML :: TableExtractを使用します。 YAMLを使用します。 Data :: Dumperを使用します。 my $ te = HTML :: TableExtract-> new(); $ te-> parse_file( 'barChart.html'); my $ table = $ te-> first_table_found(); #for my $ table($ te-> tables){ #print Dumper $ table-> columns; #} $ ts($ te-> tables){ "テーブル("、join( '、'、$ ts-> coords)、 "):\ n"; foreach my $ row($ ts-> rows){ 印刷結合( '、'、@ $行)、 "\ n"; } } –

+0

@AmbroseZaragozaあなたは答えとして自分自身を追加し、それを受け入れるべきでした。なぜあなたは 'YAML'を必要としますか? – simbabque

0

#!perl/bin/perl 
use strict; 
use warnings; 
use LWP::Simple; 

my $URL= "http://urladdress"; 
my $content = get($URL); 
print $content; 
関連する問題