笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

请求和响应

发布者: 笨鸟自学网



与请求相关的其他功能

scrapy.utils.request.request_from_dict(d: dict*spider: Optional[scrapy.spiders.Spider] = None) scrapy.http.request.Request[源代码]

创建 Request 词典中的对象。

如果给定了爬行器,它将尝试解析在爬行器中查找同名方法的回调。

向回调函数传递附加数据

请求的回调是一个函数,在下载请求的响应时将调用该函数。将使用下载的 Response 对象作为其第一个参数。

例子::

def parse_page1(self, response):
    return scrapy.Request("http://www.example.com/some_page.html",
                          callback=self.parse_page2)

def parse_page2(self, response):
    # this would log http://www.example.com/some_page.html
    self.logger.info("Visited %s", response.url)

在某些情况下,您可能对向这些回调函数传递参数感兴趣,以便稍后在第二个回调中接收这些参数。下面的示例演示如何通过使用 Request.cb_kwargs 属性:

def parse(self, response):
    request = scrapy.Request('http://www.example.com/index.html',
                             callback=self.parse_page2,
                             cb_kwargs=dict(main_url=response.url))
    request.cb_kwargs['foo'] = 'bar'  # add more arguments for the callback
    yield request

def parse_page2(self, response, main_url, foo):
    yield dict(
        main_url=main_url,
        other_url=response.url,
        foo=foo,
    )

警告

Request.cb_kwargs 在版本中引入 1.7 . 在此之前,使用 Request.meta 建议在回调时传递信息。后 1.7 , Request.cb_kwargs 成为处理用户信息的首选方式,离开 Request.meta 用于与中间件和扩展等组件通信。


上一篇:Feed 导出下一篇:链接提取器

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-11-23 17:27 , Processed in 0.015651 second(s), 17 queries .

© 2001-2020

返回顶部