Scrappy逐列输出数据,我想逐行抓取。这怎么可能?

Scrappy outputs the data column by column, I want to scrape row by row. How is it possible?

下面是代码,蜘蛛的图片如下所示:

def parse_getData(self, response):
    rows=response.xpath('//*[@id="table-timetable"]/table/tbody')
    items=[]
    for row in rows:
        item = ScraperItem()
        item['Day'] = row.xpath('.//tr/th/strong/text()').extract() 
        item['Time'] = row.xpath('.//td/span[1]/text()').extract()
        item['Venue']=row.xpath('.//td/span[3]/text()').extract()
        item['Subject']=row.xpath('.//td/strong/text()').extract()                   
        items.append(item)
    return items

我希望它的结果如下:

{'Day':Monday 'Subject':u'BIS3208 (L) - SEMINAR SERIES',u'NET3204 (P) - DISTRIBUTED SYSTEMS'}

可能吗?

问题不在于 Scrapy,而在于你如何创建你的项目。您必须相应地更改 xpath 查询和 select 您每次需要的文本。现在您正在 select 阅读所有文本。

编辑

为了澄清。

row.xpath('.//tr/th/strong/text()').extract() 

像这样的查询 selects 文档中的所有 tr 元素,然后是第 th 个子元素,结果不仅是填充 Scrapy 项目所需的一个元素。您必须相应地处理通过 xpath 查询检索到的元素,并使用该数据创建您的 Scrapy 项目。 Scrapy 没有其他方法可以自动知道它。