2013-07-02 76 views
1

需要刮scrapy需要刮表。在以下格式的數據:表需要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

回答

2

基礎的在tutorial shell的例子中,你應該先抓取<tr>元素,然後從這些抓取<td>,如下所示:

rows = hxs.select('//tr') 
for row in rows: 
    print row.select('td/text()').extract() 

rows將列出您要迭代的對象HtmlXPathSelector,然後從當前的<tr>的每個<td>中提取文本。

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 '] 
+0

感謝..現在的工作..不得不更換行.. – bobsr