Scrapy中response介紹、屬性以及內容提取


解析response

parse()方法的參數 response 是start_urls里面的鏈接爬取后的結果。所以在parse()方法中,我們可以直接對response對象包含的內容進行解析,比如瀏覽請求結果的網頁源代碼,或者進一步分析源代碼內容,或者找出結果中的鏈接而得到下一個請求

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

二.Selector對象

  • Selector 對象和SelectorList對象都有以下幾種方法。

  • extract() 返回選中內容的Unicode字符串

  • extract_first()(SelectorList獨有)

    返回列表中的第一個元素內容

  • re("正則表達式") 正則提取

  • re_first()(SelectorList獨有)

    返回列表中的第一個元素內容

三.CSS

response.css('css選擇器')   返回值是Selector對象

response.css('css選擇器').extract_first()   #獲取一個

response.css('css選擇器').extract()  # 獲取全部
 response.css('css選擇器::attr(屬性名)').extract() # 獲取其中某個屬性  (response.css('css選擇器::text').extract() #獲取標簽里的文本

四.xpath

response.xpath('xpath選擇器')   返回值是Selector對象

response.xpath('xpath選擇器').extract_first()   #獲取一個

response.xpath('xpath選擇器').extract()  # 獲取全部
 .//a[contains(@class,"link-title")/text()] # 獲取文本
.//a[contains(@class,"link-title")/@href] #獲取屬性

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM