scrapy 2.3 文本响应对象
下面是可用的内置响应子类的列表。您还可以对响应类进行子类化,以实现您自己的功能。
文本响应对象
scrapy.http.
TextResponse
(url[, encoding[, ...]])TextResponse
对象将编码功能添加到基 Response
类,它只用于二进制数据,如图像、声音或任何媒体文件。
TextResponse
对象支持新的 __init__
方法参数,以及基 Response
物体。其余功能与 Response
类,此处未记录。
- 参数
-
encoding (str) -- 包含用于此响应的编码的字符串。如果创建一个
TextResponse
对象,它将转换为使用此编码编码的字节。如果 编码 是None
(默认),将在响应头和正文中查找编码。
TextResponse
除了标准之外,对象还支持以下属性 Response
一:
text
-
响应体,作为字符串。
一样
response.body.decode(response.encoding)
,但结果在第一次调用后缓存,因此您可以访问response.text
多次无额外开销。注解
str(response.body)
不是将响应正文转换为字符串的正确方法:>>> str(b'body') "b'body'"
encoding
-
带有此响应编码的字符串。按顺序尝试以下机制来解决编码问题:
-
传入的编码
__init__
方法encoding
参数 -
在内容类型HTTP标头中声明的编码。如果此编码无效(即未知),则忽略它并尝试下一个解析机制。
-
响应正文中声明的编码。TextResponse类不为此提供任何特殊功能。然而,
HtmlResponse
和 XmlResponse
上课。 -
通过查看响应主体推断出的编码。这是更脆弱的方法,也是最后一个尝试的方法。
-
selector
-
A
Selector
使用响应作为目标的实例。选择器在第一次访问时被惰性地实例化。
TextResponse
对象除了支持标准之外还支持以下方法 Response
一:
xpath
(query)-
捷径
TextResponse.selector.xpath(query)
::response.xpath('//p')
css
(query)-
捷径
TextResponse.selector.css(query)
::response.css('p')
follow
(url, callback=None, method='GET', headers=None, body=None, cookies=None, meta=None, encoding=None, priority=0, dont_filter=False, errback=None, cb_kwargs=None, flags=None)-
返回A
Request
要跟踪链接的实例url
. 它接受与Request.__init__
方法,但url
不仅可以是绝对URL,而且可以是-
相对URL
-
一
Link
对象,例如 链接提取器 -
一
Selector
对象<link>
或<a>
元素,例如response.css('a.my_link')[0]
-
属性
Selector
(不是选择器列表),例如。response.css('a::attr(href)')[0]
或response.xpath('//img/@src')[0]
见 创建请求的快捷方式 用于示例。
-
follow_all
(urls=None, callback=None, method='GET', headers=None, body=None, cookies=None, meta=None, encoding=None, priority=0, dont_filter=False, errback=None, cb_kwargs=None, flags=None, css=None, xpath=None)-
产生
Request
跟踪所有链接的实例urls
. 它接受与 Request
的__init__
方法,除了urls
元素不需要是绝对URL,它可以是以下任何一个:-
相对URL
-
一
Link
对象,例如 链接提取器 -
一
Selector
对象<link>
或<a>
元素,例如response.css('a.my_link')[0]
-
属性
Selector
(不是选择器列表),例如。response.css('a::attr(href)')[0]
或response.xpath('//img/@src')[0]
此外,
css
和xpath
参数可用于在中执行链接提取follow_all
方法(只有一个urls
,css
和xpath
接受)。注意,当经过
SelectorList
作为urls
参数或使用css
或xpath
参数时,此方法不会为无法从中获取链接的选择器生成请求(例如,没有href
属性) -
json
()-
2.2 新版功能.
将JSON文档反序列化为Python对象。
从反序列化的JSON文档返回Python对象。结果在第一次调用后被缓存。
-
HTMLResponse对象
- class
scrapy.http.
HtmlResponse
(url[, ...]) -
这个
HtmlResponse
类是的子类 TextResponse
它通过查看HTML添加了编码自动发现支持 meta http-equiv 属性。见 TextResponse.encoding
.
XmlResponse对象
- class
scrapy.http.
XmlResponse
(url[, ...]) -
这个
XmlResponse
类是的子类 TextResponse
它通过查看XML声明行添加了编码自动发现支持。见 TextResponse.encoding
.
- class