scrapy的Response和Selector编码格式介绍

1、response介绍

当spider发出请求以后会返回response。response是一个类,其中包括一些内置的属性。html

bodyscrapy

  • body是response返回的内容,它的类型是str,因此body的内容编码类型是爬取页面的原类型。
  • 例如网页的编码类型是GBK,那么body也是GBK的。
  • 若是须要把body转换成Unicode,能够作如下处理:

response.body.decode(response.encoding)ide

例如: response.body.decode(‘gbk’)编码

2、选择器Selector介绍

当抓取网页时,你作的最多见的任务是从HTML源码中提取数据。Scrapy选择器构建于 lxml 库之上,这意味着它们在速度和解析准确性上很是类似。Scrapy selector是以文字(text)或TextResponse构造的Selector实例。spa

class scrapy.selector.Selector(response=None, text=None, type=None)code

  • response 是 HtmlResponse 或 XmlResponse 的一个对象,将被用来选择和提取数据。
  • text 是在 response 不可用时的一个unicode字符串或utf-8编码的文字。将 text 和 response 
    一块儿使用是未定义行为。
  • type 定义了选择器类型,能够是 “html”, “xml” or None (默认).

response经过选择器Selector做用后,再经过处理(如XPath)后获得的数据都是Unicode的形式xml

sel = Selector(response)htm

例子:对象

>>> from scrapy.selector import Selector 
>>> from scrapy.http import HtmlResponseutf-8

>>> body = ‘good’  >>> Selector(text=body).xpath(‘//span/text()’).extract()  >>> [u’good’]

相关文章
相关标签/搜索