2016-06-30 11 views
1

私は、項目にアクセスする場所か、構文解析機能で項目を返すときに返される場所を知りたいと思っていましたか?以下のサンプルコードを参照アイテムは、スクラップを使用してPythonでデータをスクラップしながらアイテムを返すときに返されますか?

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 

このアイテムはどこに返されますか?そして、どうすれば後でそれにアクセスできますか?どんな助けもありがとう。ありがとう

+0

可能な複製(http://stackoverflow.com/questions/231767/what [yieldキーワードは、Pythonで何をしますか?] -does-the-yield-keyword-in-python) –

答えて

1

Scrapyコールバックメソッドで生成されたアイテムは、Scrapyエンジンによって消費され、そのアイテムはItem Pipelinesに転送されます。

したがって、データの検証、データベースの永続性などのアイテムに対してさらにアクションを実行する場合は、アイテムパイプラインを作成し、それをScrapyプロジェクトで設定する必要があります。例hereをチェックアウトし、Scrapyアーキテクチャを見て:の

Scrapy architecture

+0

ありがとうございます!とても役に立ちました –

関連する問題