scrapy 中用selector來提取資料的用法

2022-06-18 09:36:10 字數 2704 閱讀 8054

1. selector是乙個可獨立使用的模組,我們可以用selector類來構建乙個選擇器物件,然後呼叫它的相關方法如xpaht(), css()等來提取資料,如下

from  scrapy import selector

body= '

』selector = selector(text=body)

title = selector.xpath('//title/text()').extract_first()

print(title)

輸出為hello world

2. scrapy shell 主要用於測試scrapy專案中命令是否生效,可在bash下直接執行,

這裡我們通過使用scrapy shell來驗證學習選擇器提取網頁資料,在linux中bash下執行命令

scrapy shell 即可進入scrapy shell命令模式

上面測試**原始碼

1. xpath和css的基本用法

#獲取的文字值,其中第乙個selector字元可以不寫

response.selector.xpath(

'//title/text()

').extract_first()response.selector.css('

title::text

').extract_first()

#獲取a標籤的href屬性值

response.xpath(

'//a/@href

').extract()

response.css(

'a::attr(href)

').extract()

#查詢屬性名稱包含image字樣的所有a標籤

response.xpath(

'//a[contains(@href, "image")]/@href

').extract()

response.css(

'a[href*=image]::attr(href)

').extract()

#查詢屬性名稱包含image字樣的所有a標籤,並且在下級img目錄下的src屬性值

response.xpath(

'//a[contains(@href, "image")]/img/@src

').extract()

response.css(

'a[href*=image] img::attr(src)

').extract()

#結合正規表示式提取所需內容

response.css(

'a::text

').re('

name\:(.*)

') #提取(.*)代表的內容

response.css(

'a::text

').re_first('

name\:(.*)

').strip() #提取第乙個(.*)代表的內容,strip()去除首尾空格

2. xpath和css也可以一起用

#先選上src屬性標籤

response.xpath(

'//div[@id="images"]

').css('

img::attr(src)'))

#提取相應資訊

response.xpath(

'//div[@id="images"]

').css('

img::attr(src)

')).extract() #得到多個字元值

response.xpath(

'//div[@id="images"]

').css('

img::attr(src)

')).extract_first() #得到乙個字元值

response.xpath(

'//div[@id="images"]

').css('

img::attr(src)

')).extract_first(default=''

) #如果沒提取到返回預設值

注意:1. extract()方法把selector型別變為資料型別

2. [@id="images"]表示用屬性來限制匹配的範圍,只查詢id屬性值等於images的div標籤,經測試中的id屬性值image必須用雙引號

Scrapy中用cookie模擬登陸新浪微博

最近想做乙個微博的搜尋頁文字分析的小專案,因為開放平台裡這個api的限制略多,決定進入爬蟲坑自己動手 之前久聞scrapy大名,嘗試了一下,抓取網頁甚是好用,避免了許多http方面的繁瑣處理 不過還是卡在了登陸這一步上 在scrapy中具體實現時,就是在爬取的spider類中,過載start req...

CheckBox使用選擇器Selector

第一步,layout檔案中設定checkbox屬性 android button null 這樣設定能解決checkbox在選中下不會顯示系統預設打勾圖示,否則設定選擇器會重疊自定義圖示 上述選中時圖示為 drawable checkbox 未選中時的圖示為 drawable checkbox bl...

Scrapy入門 Scrapy是什麼

一 scrapy 蜘蛛 scrapy是我們熟知的蜘蛛爬蟲框架,我們用蜘蛛來獲取網際網路上的各種資訊,然後再對這些資訊進行資料分析處理。所以說,scrapy是學習大資料的入門技能。scrapy是乙個為了爬取 資料,提取結構性資料而編寫的應用框架。蜘蛛作為網路爬蟲,在網上到處或定向抓取 網頁的html資...