在scrapy中使用xpath从表行检索信息

时间:2013-11-29 11:39:24

标签: python xpath scrapy

我正在尝试使用scrapy来从html表中释放信息并将它们存储到数据库中。信息存储在行中,无法将一个记录与另一个记录区分开来。 (我正在抓取的网站是http://www.ets.gr/frontoffice/portal.asp?cpage=NODE&cnode=12)。

如果形式为:

,我如何循环到表格的每一行并获取信息

记录1:tr [1]和tr [2](跳过tr [3])
Record2:tr [4]和tr [5](跳过tr [6])
Record3:tr [7]和tr [8](跳过tr [9])
所以......?

我为每个循环而得到的节点是:
nodes = hxs.xpath(“// table / tr / td / table / tr / td / table / tr / td / table / tr”)

1 个答案:

答案 0 :(得分:1)

使用XPath 1.0构建这些结果是不可能的(并且所有scrapy都支持),您必须使用Python代码(在使用XPath提取信息之后)。

如果您想从头开始省略第三/第六/ ...行,请使用position()和模数:

//table/tr/td/table/tr/td/table/tr/td/table/tr[(position() mod 3) != 0]

或者,使用@valign属性,例如提议的metaphy:

//table/tr/td/table/tr/td/table/tr/td/table/tr[@valign = 'top']