笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

请求和响应

发布者: 笨鸟自学网



响应子类

下面是可用的内置响应子类的列表。您还可以对响应类进行子类化,以实现您自己的功能。

文本响应对象

classscrapy.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

带有此响应编码的字符串。按顺序尝试以下机制来解决编码问题:

  1. 传入的编码 __init__ 方法 encoding 参数

  2. 在内容类型HTTP标头中声明的编码。如果此编码无效(即未知),则忽略它并尝试下一个解析机制。

  3. 响应正文中声明的编码。TextResponse类不为此提供任何特殊功能。然而, HtmlResponse 和 XmlResponse 上课。

  4. 通过查看响应主体推断出的编码。这是更脆弱的方法,也是最后一个尝试的方法。

selector

Selector 实例使用响应作为目标。选择器在第一次访问时延迟实例化。

attributes: Tuple[str, ...]= ('url', 'status', 'headers', 'body', 'flags', 'request', 'certificate', 'ip_address', 'protocol', 'encoding')

的元组 str 对象,这些对象包含类的所有公共属性的名称,这些属性也是 __init__ 方法。

当前由以下人员使用 Response.replace() 

TextResponse 对象除了支持标准之外还支持以下方法 Response 一:

xpath(query)[源代码]

捷径 TextResponse.selector.xpath(query) ::

response.xpath('//p')
css(query)[源代码]

捷径 TextResponse.selector.css(query) ::

response.css('p')
follow(urlcallback=Nonemethod='GET'headers=Nonebody=Nonecookies=Nonemeta=Noneencoding=Nonepriority=0dont_filter=Falseerrback=Nonecb_kwargs=Noneflags=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=Nonecallback=Nonemethod='GET'headers=Nonebody=Nonecookies=Nonemeta=Noneencoding=Nonepriority=0dont_filter=Falseerrback=Nonecb_kwargs=Noneflags=Nonecss=Nonexpath=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]

此外, 

上一篇:Feed 导出下一篇:链接提取器

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-9-17 03:39 , Processed in 0.156492 second(s), 17 queries .

© 2001-2020

返回顶部