python scrapy parse()函数,返回的返回值在哪里?

San*_*Kim 5 python scrapy web-scraping scrapy-spider

我是Scrapy的新手,如果这个问题很简单,我很抱歉.我已经从官方网页上阅读了关于Scrapy的文档.在浏览文档时,我遇到了这个例子:

import scrapy
from myproject.items import MyItem

class MySpider(scrapy.Spider):
  name = ’example.com’
  allowed_domains = [’example.com’]
  start_urls = [
  ’http://www.example.com/1.html’,
  ’http://www.example.com/2.html’,
  ’http://www.example.com/3.html’,
  ]

  def parse(self, response):
    for h3 in response.xpath(’//h3’).extract():
      yield MyItem(title=h3)
    for url in response.xpath(’//a/@href’).extract():
      yield scrapy.Request(url, callback=self.parse) 
Run Code Online (Sandbox Code Playgroud)

我知道,parse方法必须返回一个项目或/和请求,但这些返回值返回到哪里?

一个是项目而另一个是请求,我认为这两种类型的处理方式不同,在这种情况下CrawlSpider,它具有带回调的规则.这个回调的回报值怎么样?去哪儿 ?一样的parse()

我对Scrapy程序非常困惑,即使我阅读了文档....

ale*_*cxe 9

根据文件:

parse()方法负责处理响应并返回抓取的数据(作为Item对象)和更多要遵循的URL(作为Request对象).

换句话说,返回/产生的项目和请求的处理方式不同,项目被传递给项目管道和项目导出器,但是请求被放入Scheduler管道中,Downloader用于发出请求并返回响应.然后,引擎接收响应并将其提供给蜘蛛以进行处理(对于该callback方法).

整个数据流过程以非常详细的方式在" 体系结构概述"页面中进行了描述.

希望有所帮助.