用scrapy从表中抓取数据

bob*_*bsr 7 python scrapy web-scraping

用scrapy从表中抓取数据.表格html如下:

<table class="tablehd">

<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>
Run Code Online (Sandbox Code Playgroud)

整个列表是可用的

items = hxs.select('//table[@class="tablehd"]//td//text()').extract()
Run Code Online (Sandbox Code Playgroud)

你如何将它们分成每个项目然后分配数据td1-td5ta

ale*_*cxe 10

不确定你想要在你的物品中看到什么,但这是一个例子,我希望是这样的:

class MyItem(Item):
    value = Field()


class MySpider(BaseSpider):
    ...

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        items = hxs.select('//table[@class="tablehd"]/td')

        for item in items:
            my_item = MyItem()
            my_item['value'] = item.select('.//text()').extract()
            yield my_item
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.