python 爬虫之scrapy中Request的使用

一、Request和Response(请求和响应)

Request对象在爬虫程序中生成并传递到系统,直到它们到达下载程序,后者执行请求并返回一个Response对象,该对象返回到发出请求的爬虫程序。

二、Request对象

python 爬虫之scrapy中Request的使用_第1张图片 

一个Request对象表示一个HTTP请求,它通常是在爬虫生成,并由下载执行,从而生成Response

  • 参数

    • url(string) - 此请求的网址

    • callback(callable) - 将使用此请求的响应(一旦下载)作为其第一个参数调用的函数。有关更多信息,请参阅下面的将附加数据传递给回调函数。如果请求没有指定回调,parse()将使用spider的 方法。请注意,如果在处理期间引发异常,则会调用errback。

    • method(string) - 此请求的HTTP方法。默认为'GET'。可设置为"GET", "POST", "PUT"等,且保证字符串大写

    • meta(dict) - 属性的初始值Request.meta,在不同的请求之间传递数据使用

    • body(str或unicode) - 请求体。如果unicode传递了a,那么它被编码为 str使用传递的编码(默认为utf-8)。如果 body没有给出,则存储一个空字符串。不管这个参数的类型,存储的最终值将是一个str(不会是unicode或None)。

    • headers(dict) - 这个请求的头。dict值可以是字符串(对于单值标头)或列表(对于多值标头)。如果 None作为值传递,则不会发送HTTP头.一般不需要

    • encoding: 使用默认的 'utf-8' 就行。

    • cookie(dict或list) - 请求cookie。这些可以以两种形式发送。

三、请求子类 FormRequest对象

FormRequest类扩展了Request具有处理HTML表单的功能的基础。它使用lxml.html表单 从Response对象的表单数据预填充表单字段

class scrapy.http.FormRequest(url[, formdata, ...])

 本FormRequest类增加了新的构造函数的参数。其余的参数与Request类相同

  • 参数:formdata(元组的dict或iterable) - 是一个包含HTML Form数据的字典(或(key,value)元组的迭代),它将被url编码并分配给请求的主体。

四、该FormRequest对象支持除标准以下类方法Requests的方法

返回一个新FormRequest对象,其中的表单字段值已预先

填充在给定响应中包含的HTML 元素中.

参数:

  • response(Responseobject) - 包含将用于预填充表单字段的HTML表单的响应

  • formname(string) - 如果给定,将使用name属性设置为此值的形式

  • formid(string) - 如果给定,将使用id属性设置为此值的形式

  • formxpath(string) - 如果给定,将使用匹配xpath的第一个表单

  • formcss(string) - 如果给定,将使用匹配css选择器的第一个形式

  • formnumber(integer) - 当响应包含多个表单时要使用的表单的数量。第一个(也是默认)是0

  • formdata(dict) - 要在表单数据中覆盖的字段。如果响应元素中已存在字段,则其值将被在此参数中传递的值覆盖

  • clickdata(dict) - 查找控件被点击的属性。如果没有提供,表单数据将被提交,模拟第一个可点击元素的点击。除了html属性,控件可以通过其相对于表单中其他提交表输入的基于零的索引,通过nr属性来标识

  • dont_click(boolean) - 如果为True,表单数据将在不点击任何元素的情况下提交

 

 

你可能感兴趣的:(python,爬虫)