Как извлечь данные из HTML-страницы с помощью Perl? Я попробовал все предложения на этом веб-сайте и потерпел неудачу - PullRequest
0 голосов
/ 30 марта 2011

Как я могу извлечь данные из HTML-страницы? Я перепробовал все, включая предложения на этом веб-сайте, например, выдержки из таблиц, но ничего не работает.Я пытаюсь извлечь информацию об опциях из веб-сайта, который имеет восемь заголовков и восемь столбцов, поэтому я попробовал предложенный пост:

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"; 
}

, но это не помогло, любая помощь будет оценена, спасибо.

Ответы [ 2 ]

4 голосов
/ 30 марта 2011

Проблема в том, что заголовки столбцов не совпадают с заголовками в таблице :). Может показаться, что они совпадают, но, если вы делаете:

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

Вы получаете:

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

Обратите внимание на последние два столбца. Что вам, вероятно, нужно:

$te = HTML::TableExtract->new( headers =>  [ "Strike", "Open", "High", "Low",
    "Current", "Change", "Time", "Prem (\$)" ] ); 
0 голосов
/ 01 февраля 2013

Следующим способом можно извлечь html-данные любой веб-страницы, используя perl:

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

my $URL= "http://urladdress";
my $content = get($URL);
print $content;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...