這篇文章將為大家詳細(xì)講解有關(guān)爬蟲Scrapy框架之css選擇器如何使用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
在css中選擇器是一種模式,用于選擇需要添加樣式的元素,css對html頁面中的元素實現(xiàn)一對一,一對多或者多對一的控制,都需要用到css選擇器,html頁面中的元素就是通過css選擇器進(jìn)行控制的;
類選擇器:元素的class屬性,比如class="box"
表示選取class為box的元素;
ID選擇器:元素的id屬性,比如id="box"
表示選取id為box的元素;
元素選擇器:直接選擇文檔元素,比如p表示選擇所有的p元素,div表示選擇所有的div元素;
屬性選擇器:選擇具有某個屬性的元素,如*[title]
表示選擇所有包含title
屬性的元素、a[href]
表示選擇所有帶有href屬性的a元素等;
后代選擇器:選擇包含元素后代的元素,如li a
表示選取所有l(wèi)i 下所有a元素;
子元素選擇器:選擇作為某元素子元素的元素,如h2 > strong
表示選擇父元素為h2 的所有 strong 元素;
相鄰兄弟選擇器:選擇緊接在另一元素后的元素,且二者有相同父元素,如h2 + p表示選擇緊接在 h2 元素之后的所有p元素;
以a元素來舉例說明
response.css('a')
:返回的是selector對象;
response.css('a').extract()
:返回的是a標(biāo)簽對象;
response.css('a::text').extract_first()
:返回的是第一個a標(biāo)簽中文本的值;
response.css('a::attr(href)').extract_first()
:返回的是第一個a標(biāo)簽中href屬性的值;
response.css('a[href*=image]::attr(href)').extract()
:返回所有a標(biāo)簽中href屬性包含image的值;
response.css('a[href*=image] img::attr(src)').extract()
:返回所有a標(biāo)簽下image標(biāo)簽的src屬性;
表達(dá)式書寫方式 | 表達(dá)式意義 |
---|---|
#box | 選取id為box的元素 |
.box | 選取class為box的元素 |
p | 選擇所有 p 元素 |
div img | 選取div下的img元素 |
div,img | 選擇所有 div 元素和所有 img 元素 |
div#box | 選取 id為box的div元素 |
div>p | 選擇父元素為 div 元素的所有 p 元素 |
[title~=flower] | 選擇 title 屬性包含單詞 “flower” 的所有元素 |
a[href=”/page/2”] | 選取href屬性為/page/2的a元素 |
a[href^=”/page”] | 選取href屬性以/page開頭的a元素 |
a[href$=”.png”] | 選取href屬性以png結(jié)尾的a元素 |
上一節(jié)中我們使用XPATH選擇器獲取了csdn中今日推薦的標(biāo)題,現(xiàn)在我們用CSS選擇器來試著獲取一下
# -*- coding: utf-8 -*- import scrapy class CsdnSpider(scrapy.Spider): name = 'csdn' allowed_domains = ['www.csdn.net'] start_urls = ['http://www.csdn.net/'] def parse(self, response): result = response.css('.company_list .company_name a::text').extract() for i in result: print(i)
我們來看一下代碼的運行結(jié)果,看是否能獲取到我們想要的信息;
首先可以使用css選擇器提取元素的跳轉(zhuǎn)鏈接和圖片的src地址,這里需要用到urllib庫中的parse.urljoin()
方法,用它來拼接獲取到的元素中的路徑,使之變?yōu)榻^對路徑;urljoin(baes,url[,allow_frafments])
,其中參數(shù)base作為基地址,與第二個參數(shù)為相對路徑的url相結(jié)合,組成一個絕對URl地址,其中參數(shù)allow_fragments可根據(jù)自己的需求設(shè)置;
import scrapy from urllib import parse class DribbbleSpider(scrapy.Spider): name = 'dribbble' allowed_domains = ['dribbble.com'] start_urls = ['/upload/otherpic39/1.png', 'wb') as f: for block in ret.iter_content(chunk_size=1024): f.write(block)
獲取xpath選擇器的元素:選擇標(biāo)簽->鼠標(biāo)右鍵->copy->Copy XPath;
獲取css選擇器的元素:可以使用第三方插件Chrome的開發(fā)者調(diào)試工具獲取,需要下載CSS Select插件->然后直接選擇標(biāo)簽元素;
關(guān)于“爬蟲Scrapy框架之css選擇器如何使用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
網(wǎng)站題目:爬蟲Scrapy框架之css選擇器如何使用-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://www.ekvhdxd.cn/article34/hhese.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、營銷型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、域名注冊、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容