当我使用scrapy在Python中抓取数据时生成项目时,item返回到哪里?

时间:2016-06-30 21:33:57

标签: python scrapy web-crawler

我想知道从哪里访问某个项目或者在我在解析函数中生成项目时返回的位置?请参阅下面的示例代码

from scrapy import Spider
from scrapy import Selector


import scrapy
from scrapy.item import Item,Field


class StackItem(Item):

    title = Field()
    url = Field()

class StackSpider(Spider):
    name = "stack"
    allowed_domains = ["stackoverflow.com"]
    start_urls = [
        "http://stackoverflow.com/questions?pagesize=50&sort=newest"
    ]

    def parse(self, response):
        questions = Selector(response).xpath('//*[@class="summary"]/h3')
        for question in questions:
            item = StackItem()
            item['title'] = question.xpath(
            'a[@class="question-hyperlink"]/text()').extract()
            item['url'] = question.xpath(
            'a[@class="question-hyperlink"]/@href').extract()
            yield item

我很困惑这件物品归还给哪里?我以后如何访问它?任何帮助,将不胜感激。感谢

1 个答案:

答案 0 :(得分:1)

Scrapy引擎使用Scrapy回调方法中产生的项目,该引擎将该项目转发给Item Pipelines

因此,如果您想对项目执行进一步操作(例如数据验证,数据库持久性等),则必须创建项目管道并在Scrapy项目中对其进行配置。查看示例here并查看Scrapy架构:

Scrapy architecture