Scrapy详解之Response
2022-04-16 14:17:10    0    0    0
junjie
# 介绍 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')) - 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的声明 --- https://zhuanlan.zhihu.com/p/40332579

上一篇: 结果的数据量大小直接影响速度

下一篇: 只需要5秒就能克隆出你的声音

Table of content