0

再会,

我正在抓取一些在表格中显示我需要的数据的页面。页面上有多个表格,内容如下:

<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');

所以在这一点上我被卡住了。我感谢所有的帮助。

4

1 回答 1

1

您需要使用node以下选项selector

my @required = $mech->selector( 'td.dCell', { node => ... } );

但是为什么不使用 XPath?

my @required = $mech->xpath('//table[@class="dTable"][3]//td[@class="dCell"]');
于 2013-04-11T07:10:25.837 回答