当前位置:   article > 正文

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

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

  1. print('url:', response.url)
  2. 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的声明

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/1009635
推荐阅读
相关标签
  

闽ICP备14008679号