有桌子需要用scrapy刮掉。数据采用以下格式:
<table>
<tr class="colhead">
<td width="170">MON, NOV 11</td>
<td width="80">Item</td>
<td width="60" align="center"></td>
<td width="210">Item</td>
<td width="220">Item</td>
</tr>
<tr class="oddrow">
<td> Item </a></td>
<td> Item </td>
<td align="center"> Item </td>
<td></td>
<td> Item </td>
</tr>
<tr class="evenrow">
<td> Item </a></td>
<td> Item </td>
<td align="center"> Item </td>
<td></td>
<td> Item </td>
</tr>
</table>
我通过
获得完整的项目清单items = hxs.select('//table[@class="tablehd"]//td//text()').extract()
如何将它们拆分为每个项目,然后分配数据td1-td5
答案 0 :(得分:2)
根据tutorial shell示例,您应首先获取<tr>
元素,然后从这些元素中抓取<td>
,如下所示:
rows = hxs.select('//tr')
for row in rows:
print row.select('td/text()').extract()
rows
将是您迭代的HtmlXPathSelector
个对象列表,然后从当前<td>
的每个<tr>
中提取文本。
row.select('td/text()').extract()
将是一个列表,其中包含给定行的每个单元格的文本:
[u'MON, NOV 11', u'Item', u'Item', u'Item']
[u' Item ', u' Item ', u' Item ', u' Item ']
[u' Item ', u' Item ', u' Item ', u' Item ']