Я РЕШЕН ЭТО: Оказывается, страница, которую я загружала с помощью WWW :: Mechanize использует AJAX для загрузки всего содержимого, находящегося внутри <tbody>
, так что он не загружается, когда Я создал переменную $ html. Теперь я должен видеть, как получить этот динамический контент ...Не удается получить содержание <tbody> при анализе HTML в Perl
Я пытаюсь разобрать через содержание таблицы в веб-страницы. <table>
содержит <thead>
и <tbody>
. Когда я иду, чтобы получить содержимое из таблицы <tbody>
, я обнаружил, что ничто из этого не существует. Я получаю только контент, который находится внутри <thead>
.
Я пробовал несколько разных методов, следуя всем, что просто не дает мне ничего изнутри <tbody>
.
с использованием HTML :: TreeBuilder
my $tb = HTML::TreeBuilder->new();
$tb->parse($html);
my $table = $tb->look_down(_tag => 'tbody', id => 'tbody-id');
с использованием HTML :: TableExtract
my $te = HTML::TableExtract->new(attribs => { id => 'table-id' });
$te->parse($html);
my $table=$te->first_table_found;
, когда я пытаюсь сделать print Dumper($table);
из таблицы Я хочу показать, что я найти <table>
и может только см. содержимое таблицы внутри <thead>
или <tbody>
и ссылку на его родительский элемент, который содержит все содержимое от <thead>
.
Мне не понравилось содержание в <thead>
Мне просто нужно содержимое таблицы из <tbody>
.
Я не уверен, что я делаю неправильно и куда идти отсюда.
Как насчет 'HTML :: TableContentParser'? – David
HTML :: TableContentParser с использованием 'my $ tcp = HTML :: TableContentParser-> new(); my $ tables = $ tcp-> parse ($ html); 'будет захватывать все в' ' и сохранять их как заголовки, но ничего из '
' заканчивается в строках – AsocProответ
Является ли HTML действительным? Мне потребовалось несколько минут, чтобы получить следующий код, потому что я не закрыл один из тегов:
источник
2014-02-10 23:59:29 Mike
Да. Спасибо, что ответ помогает лучше понять, как это будет работать в теории. Выводит страницу, которую я загружал с помощью WWW :: Mechanize использует AJAX для загрузки всего содержимого, находящегося внутри '
', поэтому он не загружается, когда я создал переменную $ html. Теперь я должен посмотреть, как получить этот динамический контент ... – AsocProПолучение сгенерированного контента может быть сложным - вам по сути нужен механизм JavaScript (например, браузер). Вы можете посмотреть [WWW :: Selenium] (https://metacpan.org/pod/WWW::Selenium) или, возможно, даже [Rhino] (https://developer.mozilla.org/en-US/ документы/Rhino). – Mike
Смежные вопросы