Scrapy Response 属性 和 Selector 对象

Scrapy 项目中,抓取的数据生成了 response 对象。我们主要针对 response 对象进行分析,提取特定的数据项。在数据分析过程中,需要频繁使用 xpath、css 表达式操作 Selector 对象。

 

1. response 属性

  • url :HTTP 响应的 url 地址,str 类型。
  • status:HTTP 响应的状态码,int 类型。
  • headers :HTTP 响应的头部,类字典类型,可以调用 get 或者 getlist 方法对其进行访问。
  • body:HTTP 响应正文,bytes 类型。
  • text:文本形式的 HTTP 响应正文,str 类型。
  •     response.text = response.body.decode(response.encoding)
        
  • encoding:HTTP 响应正文的编码。
  • reqeust:产生该 HTTP 响应的 Reqeust 对象。
  • meta:即 response.request.meta,在构造 Request 对象时,可将要传递给响应处理函数的信息通过 meta 参数传入,响应处理函数处理响应时,通过 response.meta 将信息提取出来。
  • selector:Selector 对象用于在 Response 中提取数据,主要是 xpath、css 取值之后的处理。
  • xpath(query):下面详细讲解。
  • css(query) :下面详细讲解。
  • urljoin(url) :用于构造绝对 url,当传入的 url 参数是一个相对地址时,根据 response.url 计算出相应的绝对 url。

 

2. Selector 对象

Selector 对象和 SelectorList 对象都有以下几种方法。

  • extract():返回选中内容的 Unicode 字符串。
  • re("正则表达式"): 使用正则表达式提取数据。
  • extract_first()(SelectorList独有):返回列表中的第一个元素内容。
  • re_first()(SelectorList独有):返回列表中的第一个元素内容。