HTML::TableExtract с таблицей внутри таблицы
У меня есть небольшой скрипт, который я использую для манипулирования кодом с удаленного URL (код является отдельным). Страница руководства для HTML::TableExtract содержит следующий раздел кода, относящийся к выполнению извлечения таблицы в таблице, т.е.
$te = new HTML::TableExtract
(
headers => [qw(Summary Region)],
chain => [
{ depth => 0, count => 2 },
{ headers => [qw(Part Qty Cost)] }
],
);
Мой код содержит это, то есть:
use HTML::TableExtract;
use strict;
use warnings;
my $te = new HTML::TableExtract
(
headers => [qw(Incident Date Time Location Description)],
chain => [
{ depth => 0, count => 2 },
{ headers => [qw(Unit DIS ENR ONS LEF ARR BUS REM COM)] }
],
);
$te->parse_file('data.html');
Тем не менее, запуск это дает мне это:
Can't locate object method "chain" via package "HTML::TableExtract" at /usr/lib/perl5/HTML/Parser.pm line 80.
Я что-то упускаю? (Если у кого-то есть лучший способ извлечь таблицу из таблицы (при печати информации обоими я весь слух)
1 ответ
Я не видел никаких документов о chain
метод в документе HTML::TableExtract
, Может быть, вы используете просроченную версию?
Но согласно документу, вы можете сделать это, используя depth
а также count
атрибуты:
$te = HTML::TableExtract->new(
headers => [qw(Unit DIS ENR ONS LEF ARR BUS REM COM)],
depth => 1,
count => 1
);
$te->parse($html_string);
глубина: укажите, как встраивать в другие таблицы ваши интересующие таблицы. Таблицы верхнего уровня в документе HTML имеют глубину 0, таблицы внутри таблиц верхнего уровня имеют глубину 1 и т. Д.
количество: укажите, какая таблица в каждой интересующей вас глубине, начиная с 0.
В твоем случае depth
а также count
должно быть как 1.