Выбор только из определенной таблицы на странице WWW::Mechanize и CSS Selector?
Добрый день,
Я собираю несколько страниц, на которых отображаются данные, которые мне нужны в таблицах. На странице есть несколько таблиц со следующими:
<table class="dTable" cellspacing="1" cellpadding="1" border="0">
Элементы, которые я хочу очистить, находятся в ячейках таблицы:
<td class="dCell" align="right">
К сожалению, на странице много ячеек с одинаковым классом. Кроме того, некоторые страницы содержат дополнительные dCells
для дополнительной информации. Таким образом, указав конкретные ячейки в сценарии формы:
my @thing = $mech->selector('td.dCell');
my $val = $thing[14]->text();
Дадут разные результаты на разных страницах, т.е. Я не получу то, что хочу все время скрести.
Так что, как частичное решение, я думаю, что было бы лучше выбрать из конкретной таблицы.
my @table = $mech->selector('table.dTable');
my @required = $table[3]->selector('td.dCell');
#the info is in the third dTable on the page
#the third table does not contain changing data, ie. I can use required[1] and it will be the same all of the time.
Я попробовал это, и это не работает, ошибка получена:
MozRepl:: RemoteObject:: Object не имеет селектора функций в следующей строке:
my @required = $table[3]->selector('td.dCell');
Так что на данный момент я застрял. Я ценю всю помощь.
1 ответ
Вам нужно использовать node
вариант selector
:
my @required = $mech->selector( 'td.dCell', { node => ... } );
Но почему вы не используете XPath?
my @required = $mech->xpath('//table[@class="dTable"][3]//td[@class="dCell"]');