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’]

相關文章
相關標籤/搜索