Request是scrapy.http.Request
的实例,包含请求的基本信息
Request参数如下
url:请求的网址
callback:回调函数,不指定默认调用parse()。回调函数一般位于spider中,有一个参数为response,代表request得到的响应
method:发起请求的方法,默认GET
meta:用于携带额外的信息,dict形式,例如:request.meta('proxy') = 192.168.1.1
body:请求正文
headers:dict形式
cookies : dict或list
encoding:默认utf-8
priority:请求的优先级(默认为0),用于调度器调度使用,越大越优先
dont_filter :对请求是否进行去重,默认false。
errback:如果在处理请求时引发异常,将调用该函数。
flags:发送到请求的标志,可用于日志记录
cb_kwargs:带有任意数据的字典,将作为关键字参数传递给请求的回调。
scrapy.FormRequest(url[, formdata])
formdata需要提交的表单数据
此外,还有FormRequest.from_response方法
FormRequest.from_respons()属性如下:
response:包含 HTML 表单的响应,该表单将用于预填充表单字段
formname:如果给定,将使用 name 属性设置为此值的表单。
formid:如果给定,将使用 id 属性设置为此值的表单。
formxpath:如果给定,将使用与 xpath 匹配的第一个表单。
formcs:如果给定,将使用与 css 选择器匹配的第一个表单。
formnumber:当响应包含多个表单时,要使用的表单数。第一个(也是默认值)是0.
formdata:dict形式,表单数据中要覆盖的字段。
clickdata:dict形式,用于查找单击的控件的属性。
dont_click:bool,如果为 True,则无需单击任何元素即可提交表单数据。
scrapy.http.JsonRequest
参数:url,data
使用 JsonRequest发送 JSON POST 请求:
data = {
'name1': 'value1',
'name2': 'value2',
}
yield JsonRequest(url='http://www.example.com/post/action', data=data)
注意:
- FormRequest的data提交后是放在请求头的form字段的,也就是表单提交
- JsonRequest的data提交后是放在请求头的json字段的,也就是发送json数据
当我们的request经过下载器,就会返回相应的response。
属性如下:
url:对应的url
status:状态码
headers:相应的标头
body:响应正文,bytes类型
flags:
request:此响应对应的请求
certificate: 代表服务器 SSL 证书的对象。
ip_address:响应的服务器的 IP 地址。
protocol:响应的协议,例如:“HTTP/1.0”、“HTTP/1.1”、“h2”
属性如下:
text:响应正文,str类型
encoding:编码,默认utf-8
selector:可以用于提取响应结果
css:用css选择器进行内容提取,等同于selector的css
xpath:用xpath进行内容提取,等同于selector的xpath
json:将text属性转为json
scrapy.http.TextResponse
TextResponse的子类
scrapy.http.HtmlResponse
scrapy.http.XmlResponse
详细用法请查看官方文档:请求与响应