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

 找回密码
 立即注册

请求和响应

发布者: 笨鸟自学网

零星用途 Request 和 Response 用于对网站进行爬网的对象。

通常, Request 对象在spider中生成并在系统中传递,直到它们到达下载程序,下载程序执行请求并返回 Response 返回发出请求的spider的对象。

两个 Request 和 Response 类具有子类,这些子类添加了基类中不需要的功能。这些在下面的 请求子类 和 响应子类 .

请求对象

classscrapy.http.Request(*args**kwargs)[源代码]

表示HTTP请求,该请求通常在爬行器中生成并由下载程序执行,从而生成 Response 

参数
  • url (str) -- 此请求的URL如果该URL无效,则 ValueError 引发异常。

  • callback (collections.abc.Callable) -- 将使用此请求的响应(一旦下载)作为其第一个参数来调用的函数。有关详细信息,请参阅 向回调函数传递附加数据 下面。如果请求没有指定回调,则爬行器的 parse() 方法。请注意,如果在处理过程中引发异常,则改为调用errback。

  • method (str) -- 此请求的HTTP方法。默认为 'GET' .

  • meta (dict) -- 的初始值 Request.meta 属性。如果给定,则将浅复制传入此参数的dict。

  • body (bytes or str) -- 请求主体。如果传递了一个字符串,则使用 encoding 通过(默认为 utf-8 )如果 body 如果未给定,则存储空字节对象。不管这个参数的最后一个值是什么,都不会被存储 None )

  • headers (dict) -- 此请求的标头。dict值可以是字符串(对于单值标头)或列表(对于多值标头)。如果 None 作为值传递,则根本不会发送HTTP标头。。。注意::Cookie通过 Cookie 标头不会被 CookiesMiddleware 。如果需要为请求设置cookie,请使用 Request.cookies 参数。这是一个正在处理的已知电流限制。

  • cookies (dict or list) --

    请求cookies。这些可以用两种形式发送。

    1. 使用DICT::

      request_with_cookies = Request(url="http://www.example.com",
                                     cookies={'currency': 'USD', 'country': 'UY'})
      
    2. 使用听写列表:

      request_with_cookies = Request(url="http://www.example.com",
                                     cookies=[{'name': 'currency',
                                              'value': 'USD',
                                              'domain': 'example.com',
                                              'path': '/currency'}])
      

    后一个表单允许自定义 domain 和 path cookie的属性。只有在为以后的请求保存cookie时,这才有用。

    当某些站点返回cookies(在响应中)时,这些cookies存储在该域的cookies中,并将在以后的请求中再次发送。这是任何普通网络浏览器的典型行为。

    若要创建不发送存储的Cookie也不存储接收的Cookie的请求,请将 dont_merge_cookies 进入以下位置的关键字 True 在……里面 request.meta 。

    发送手动定义的cookie并忽略cookie存储的请求示例:

    Request(
        url="http://www.example.com",
        cookies={'currency': 'USD', 'country': 'UY'},
        meta={'dont_merge_cookies': True},
    )
    

    有关详细信息,请参阅 CookiesMiddleware .

    警告

    Cookie通过 Cookie 标头不会被 CookiesMiddleware 。如果需要为请求设置cookie,请使用 Request.cookies 参数。这是一个正在处理的已知电流限制。

  • encoding (str) -- 此请求的编码(默认为 'utf-8' ). 此编码将用于对URL进行百分比编码,并将正文转换为字节(如果以字符串形式给出)。

  • priority (int) -- 此请求的优先级(默认为 0 )调度程序使用优先级定义用于处理请求的顺序。优先级值较高的请求将更早执行。允许负值以表示相对较低的优先级。

  • dont_filter (bool) -- 指示调度程序不应筛选此请求。当您希望多次执行相同的请求时,可以使用此选项忽略重复的筛选器。小心使用,否则会进入爬行循环。默认为 False .

  • errback (collections.abc.Callable) -- 如果在处理请求时引发任何异常,则将调用的函数。这包括404 HTTP错误等失败的页面。它收到一个 Failure 作为第一个参数。有关详细信息,请参阅 使用errbacks捕获请求处理中的异常 下面。。版本更改::2.0 回调 当 错误 参数已指定。

  • flags (list) -- 发送到请求的标志可用于日志记录或类似用途。

  • cb_kwargs (dict) -- 具有任意数据的dict,将作为关键字参数传递到请求的回调。


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

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

GMT+8, 2024-11-21 18:01 , Processed in 0.017852 second(s), 17 queries .

© 2001-2020

返回顶部