scrapy的Response和Selector编码格式介绍

一、response介绍

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

body

  • body是response返回的内容,它的类型是str,所以body的内容编码类型是爬取页面的原类型。
  • 例如网页的编码类型是GBK,那么body也是GBK的。
  • 如果需要把body转换成Unicode,可以做以下处理:

response.body.decode(response.encoding)

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

二、选择器Selector介绍

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

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

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

response通过选择器Selector作用后,再通过处理(如XPath)后得到的数据都是Unicode的形式

sel = Selector(response)

例子:

>>> from scrapy.selector import Selector
>>> from scrapy.http import HtmlResponse

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值