response对象的方法有哪些_Scrapy详解之Response

10f2bbf1730e1baa60df99d388d81cb3.png
作者:Zarten 知乎专栏:Python爬虫深入详解 知乎ID: Zarten 简介: 互联网一线工作者,尊重原创并欢迎评论留言指出不足之处,也希望多些关注和点赞是给作者最好的鼓励 !

介绍

Response类用于http下载返回信息的类,它有几个子类:TextResponse 、 HtmlResponse 、 XmlResponse

其中 parse(self, response) 中的response就是HtmlResponse 类型的

Response

class scrapy.http.Response(url[, status=200, headers=None, body=b'', flags=None, request=None])

参数说明:这些参数跟上一篇Scrapy详解之Request一样,可以参考,这里不再累赘讲述

属性和方法:

  • url

str 返回的url

  • status

int http返回的状态码 如: 200 404

  • headers

dict 返回headers

若要获取特定的值用get('keyname') getlist('keyname')

get('keyname') : 获取指定key的第一个value值 返回str

getlist('keyname') : 获取指定key的所有value值 返回list

  • body

byte 返回body,若需要返回unicode版本用 TextResponse.text

  • request

返回Request对象,具体请参考上一篇Scrapy详解之Request,这里不再累赘讲述

  • meta

返回meta,具体请参考上一篇Scrapy详解之Request,这里不再累赘讲述

  • flags

返回请求标志,具体请参考上一篇Scrapy详解之Request,这里不再累赘讲述

  • urljoin(url)

返回的url链接新的url,返回新的url

print('url:', response.url)
print('new url:', response.urljoin('Zarten'))

a85a5e287b11441d7e5113af43639487.png
  • follow(url, callback=None, method='GET', headers=None, body=None, cookies=None, meta=None, encoding='utf-8', priority=0, dont_filter=False, errback=None)

返回Request的实例,跟Request.__init__的参数一样,唯一不同的是参数url可以是相对的

TextResponse

这个类继承于Response类,增加了编码的功能,用于处理二进制数据,如图像、音视频等

class scrapy.http.TextResponse(url[, encoding[, ...]])

参数说明:

  • encoding: str 指定返回的编码方式,默认为None,如果是None,则encoding将自动在headers和body中查找编码方式

属性和方法:

  • text

unicode编码返回body部分,等同于 response.body.decode(response.encoding)

  • encoding

返回编码方式,返回方式按下面顺序:

1.在class scrapy.http.TextResponse(url[, encoding[, ...]])中传递的encoding

2.在返回的http header中查找

3.在返回的body中查找

4.从body中推断方式,最不可取的一种方式

  • selector

选择器对象

一般用法:

response.selector.xpath(query)

response.selector.css(query)

也可用下面的2种简介方法

  • xpath(query)

用法:response.xpath('//p')

  • css(query)

用法:response.css('p')

  • body_as_unicode()

等同于 text属性

HtmlResponse

这个类是上面介绍类(TextResponse )的子类,这个类能自动发现编码方式通过HTML metahttp-equiv

通常在scrapy的spider中,回调函数parse的参数response就是这个类型

XmlResponse

这个类也是TextResponse 的子类,能自动发现编码方式通过XML的声明

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值