Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
篇文章給大家說了css的三種不同的引入方式,今天給大家說一下css的三種選擇器:標(biāo)簽選擇器、類選擇器和ID選擇器。
那么有人就會(huì)問了,什么是選擇器?我們寫的css樣式聲明(定義)由兩部分組成,形式如下:選擇器{ 樣式;},在{}之前的部分就是“選擇器”,“選擇器”指明了{(lán)}中的“樣式”的作用對(duì)象,也就是“樣式”作用于網(wǎng)頁中的哪些元素。比如我們之前寫的span{ color:#f00; }中的span就為一個(gè)選擇器。
標(biāo)簽選擇器其實(shí)就是我們經(jīng)常說的html代碼中的標(biāo)簽。例如html、span、p、div、a、img等等;比如我們想要設(shè)置網(wǎng)頁中的p標(biāo)簽內(nèi)一段文字的字體和顏色,那么css代碼就如下所示:
上面的css樣式代碼的作用:為p標(biāo)簽內(nèi)的文字設(shè)置顏色為紅色,字體的大小為16px;(具體的css樣式我們會(huì)在后邊講解,這里先了解下即可)
類選擇器在我們今后的css樣式編碼中是最常用到的,它是通過為元素設(shè)置單獨(dú)的class來賦予元素樣式效果。
使用語法:(我們這里為p標(biāo)簽單獨(dú)設(shè)置一個(gè)類選擇器.content,代碼就如下所示)
詳細(xì)講解:
1、類選擇器都是使用英文圓點(diǎn)(.)開頭;
2、每個(gè)元素可以有多個(gè)類名,,名稱可以任意起名(但不要起中文,一般都是與內(nèi)容相關(guān)的英文縮寫)
3、類選擇器只會(huì)改變類下的元素樣式,而不會(huì)改變其它標(biāo)簽的默認(rèn)樣式;
我們上邊的頁面在瀏覽器上顯示的效果就如下所示:(content下的文字內(nèi)容顏色變成了紅色,字體變成了16px)
ID選擇器類似于類選擇符,作用同類選擇符相同,但也有一些重要的區(qū)別。
使用語法:
詳細(xì)講解:
1、ID選擇器為標(biāo)簽設(shè)置id="ID名稱",而不是class="類名稱"。
2、ID選擇符的前面是符號(hào)為井號(hào)(#),而不是英文圓點(diǎn)(.)。
3、ID選擇器的名稱是唯一的,即相同名稱的id選擇器在一個(gè)頁面只能出現(xiàn)一次;
對(duì)于css的三種選擇器我們今天就先介紹到這里,大家在平時(shí)可以自己多加練習(xí)練習(xí),多熟練下class的使用方式與技巧。
每日金句:你今天的努力,是幸運(yùn)的伏筆,當(dāng)下的付出,是明日的花開。喜歡我的文章的小伙伴記得關(guān)注一下哦,每天將為你更新最新知識(shí)。
言
在進(jìn)行網(wǎng)站爬取時(shí),能夠準(zhǔn)確、高效地提取所需數(shù)據(jù)是至關(guān)重要的。CSS 選擇器提供了一種強(qiáng)大且靈活的方式,用于定位和提取網(wǎng)頁中的特定部分。本文將詳細(xì)介紹如何在網(wǎng)站爬取中使用 CSS 選擇器,以及如何使用它們來指定部分讀取網(wǎng)頁內(nèi)容。
CSS 選擇器基礎(chǔ)
CSS 選擇器用于選擇 HTML 文檔中的元素以便應(yīng)用樣式。在網(wǎng)頁爬取中,同樣的原理被用來定位和提取數(shù)據(jù)。
簡單選擇器:
元素選擇器:選擇所有特定類型的元素。例如,p 選擇所有 <p> 元素。
類選擇器:以點(diǎn)(.)開頭,選擇特定類的所有元素。例如,.class-name 選擇所有 class="class-name" 的元素。
ID 選擇器:以井號(hào)(#)開頭,選擇特定 ID 的元素。例如,#id 選擇 id="id" 的元素。
組合選擇器:
后代選擇器:用空格分隔,選擇特定元素內(nèi)的另一個(gè)元素。例如,div p 選擇所有位于 <div> 元素內(nèi)的 <p> 元素。
子選擇器:用大于號(hào)(>)分隔,選擇直接子元素。例如,ul > li 選擇所有直接位于 <ul> 內(nèi)的 <li> 元素。
屬性選擇器:
選擇具有特定屬性或?qū)傩灾档脑亍@纾琣[href] 選擇所有帶有 href 屬性的 <a> 元素。
使用 Scrapy 和 CSS 選擇器
在 Scrapy 中,CSS 選擇器被廣泛用于提取數(shù)據(jù)。以下是一個(gè)示例,展示如何使用 Scrapy 和 CSS 選擇器進(jìn)行網(wǎng)頁內(nèi)容的指定部分讀取:
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com']
def parse(self, response):
# 使用 CSS 選擇器提取數(shù)據(jù)
titles = response.css('h1::text').getall() # 提取所有 <h1> 標(biāo)簽的文本
links = response.css('a::attr(href)').getall() # 提取所有鏈接
for title in titles:
print(title)
for link in links:
print(link)
在這個(gè)示例中,response.css() 方法用于應(yīng)用 CSS 選擇器,::text 用于獲取元素的文本內(nèi)容,::attr(href) 用于獲取元素的 href 屬性值。
CSS 選擇器的高級(jí)應(yīng)用
CSS 選擇器也可以用于更復(fù)雜的選擇任務(wù),如選擇特定類的最后一個(gè)元素、選擇具有特定屬性值的元素等。
偽類選擇器:
如 :last-child、:first-of-type 等偽類選擇器可以用于選擇特定的子元素。
屬性值選擇器:
如 [attribute^=value]、[attribute$=value]、[attribute*=value] 可以用于基于屬性值的模式匹配。
總結(jié)
CSS 選擇器是一種強(qiáng)大的工具,用于網(wǎng)頁內(nèi)容的精確提取。通過熟練使用 CSS 選擇器,可以大大提高爬蟲的效率和準(zhǔn)確性。在實(shí)際的爬蟲項(xiàng)目中,合理地使用 CSS 選擇器不僅可以節(jié)省時(shí)間,還可以使得代碼更加簡潔易懂。無論是簡單的數(shù)據(jù)提取還是復(fù)雜的網(wǎng)頁解析,CSS 選擇器都是爬蟲開發(fā)者的有力工具。
下來快速地學(xué)習(xí)一下選擇排序。
·首先,我們有一個(gè)無序數(shù)組,從數(shù)組的最低位開始,從第5個(gè)元素開始,在整個(gè)數(shù)組中找到最小的元素,即1和5。很明顯,1比5小,現(xiàn)在最小值是1。
·然后,我們將1和9進(jìn)行比較,然后和8進(jìn)行比較,然后和3進(jìn)行比較,然后和6進(jìn)行比較,然后和4進(jìn)行比較,然后和7進(jìn)行比較。第一輪已經(jīng)確定了最小的元素是1,因此1和5進(jìn)行交換,1所在的位置已經(jīng)正確了。
·然后,我們從下標(biāo)為1的5開始,開始第二輪找出最小的元素。在第二輪中,最小值是3,因此我們將3和5交換位置,3已經(jīng)在正確的位置上了。
·然后,我們從下標(biāo)為2的元素9開始,和后面所有的元素進(jìn)行比較,找出最小的元素。很明顯,這里面最小的元素是4,因此我們將4和9交換位置。前面三個(gè)元素已經(jīng)有序。
·然后,我們從下標(biāo)為3的8開始,進(jìn)行下一輪邊里找出最小的元素是5,因此我們將5和8交換位置。因此,選擇排序的核心是選擇一個(gè)最小的元素,并與當(dāng)前元素進(jìn)行交換。
·接下來,我們將8和后面所有的元素進(jìn)行比較,找出最小的元素,即6和8交換。
·然后,我們從8開始和后面的9和7進(jìn)行比較,找出最小的元素,即7和8交換。
·然后,我們從下標(biāo)為6的9和后面的所有元素進(jìn)行比較,找出最小的元素,即7和9交換。
·現(xiàn)在,第零個(gè)到第六個(gè)元素已經(jīng)在正確的位置上,整個(gè)選擇排序結(jié)束。
一起來總結(jié)一下。選擇排序的基本思想是從數(shù)組中選擇最小的元素,并將其與當(dāng)前元素進(jìn)行交換,直到整個(gè)數(shù)組有序?yàn)橹埂T谶x擇排序中,我們需要不斷比較最小的元素,并將其與當(dāng)前元素進(jìn)行交換。選擇排序是一種簡單的排序算法,但其時(shí)間復(fù)雜度較高,因?yàn)樗枰粩啾容^和交換。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。