溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)

發(fā)布時(shí)間:2021-10-25 16:54:24 來源:億速云 閱讀:120 作者:iii 欄目:web開發(fā)

這篇文章主要介紹“在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)”,在日常操作中,相信很多人在在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

/CSS基礎(chǔ)/

CSS選擇器和Xpath選擇器的功能是一致的,都是幫助我們?nèi)ザㄎ痪W(wǎng)頁(yè)結(jié)構(gòu)中的某一個(gè)具體的元素,但是在語法表達(dá)上有區(qū)別。Xpath選擇器明明已經(jīng)可以幫助我們提取信息了,為什么還要學(xué)習(xí)CSS選擇器呢?

蘿卜青菜各有所愛,對(duì)于不同知識(shí)背景的小伙伴,都可以來提取網(wǎng)頁(yè)信息。只要是能抓到老鼠的貓,都是好貓,同樣的,只要能提取信息,不論是正則表達(dá)式、BeateafulSoup、Xpath選擇器亦或是CSS選擇器,都是好的選擇器,只不過在效率和難易程度上不一樣。此外,對(duì)應(yīng)前端的小伙伴來說,CSS選擇器對(duì)他們來說就簡(jiǎn)單很多。

CSS選擇器功能強(qiáng)大,從實(shí)用性出發(fā),下面是部分比較常用的一些CSS選擇器語法,相對(duì)來說比較簡(jiǎn)單,但是也是非常實(shí)用的語法,希望大家都可以牢牢掌握,后期在提取網(wǎng)頁(yè)信息的時(shí)候?qū)?huì)事半功倍。

在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)

有了以上的CSS基礎(chǔ)之后,接下來我們進(jìn)行實(shí)際應(yīng)用。

/實(shí)際應(yīng)用/

仍然以之前的網(wǎng)站為例進(jìn)行說明,我們的目標(biāo)數(shù)據(jù)是標(biāo)題、發(fā)布日期、主題、正文內(nèi)容、點(diǎn)贊數(shù)、收藏?cái)?shù)、評(píng)論數(shù)等。

1、關(guān)于標(biāo)題部分,之前我們利用Xpath的表達(dá)式的時(shí)候就分析過,得到了唯一性的定位標(biāo)簽,在此不再贅述,如下圖所示。

在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)

2、仍然利用scrapyshell的調(diào)試模式進(jìn)行助攻,結(jié)合上邊的CSS基礎(chǔ)語法,標(biāo)題的具體CSS表達(dá)式如下圖所示。

在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)

需要注意的是在CSS中獲取標(biāo)簽文本內(nèi)容的方式是在CSS表達(dá)式后邊緊跟“::text”,記住是有兩個(gè)冒號(hào)噢,與Xpath表達(dá)式不一樣。這個(gè)表達(dá)式看上去比Xpath表達(dá)式要簡(jiǎn)潔一些,所以當(dāng)某些情況下,大家如果覺得CSS選擇器的表達(dá)式比Xpath表達(dá)式要簡(jiǎn)短或者理解起來相對(duì)容易的話,可以首選CSS選擇器,沒有具體的要求,大家根據(jù)自己的喜愛來進(jìn)行選擇即可,反之亦成立,當(dāng)然也可以同時(shí)在一個(gè)爬蟲文件將兩個(gè)或者多個(gè)選擇器進(jìn)行交叉使用。

3、接下來是發(fā)布日期的提取,仍然是以交互式的方式實(shí)現(xiàn)網(wǎng)頁(yè)與源碼之間的交互,其中標(biāo)簽“entry-meta-hide-on-mobile”具有全局唯一性,可以很方便的定位到元素,如下圖所示。

在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)

4、根據(jù)網(wǎng)頁(yè)結(jié)構(gòu),我們可輕易的寫出發(fā)布日期的CSS表達(dá)式,可以在scrapy shell中先進(jìn)行測(cè)試,再將選擇器表達(dá)式寫入爬蟲文件中,詳情如下圖所示。

在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)

5、關(guān)于文章主題標(biāo)簽的CSS表達(dá)式,可以看到其在網(wǎng)頁(yè)結(jié)構(gòu)上處于日期的下方,如下圖所示。

在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)

6、通過更改一下發(fā)布日期的CSS表達(dá)式,即可獲取到文章主題標(biāo)簽。文章主題標(biāo)簽處于a標(biāo)簽下,如下圖所示。

在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)

獲取到整個(gè)列表之后,利用join函數(shù)將數(shù)組中的元素以逗號(hào)連接生成一個(gè)新的字符串叫tags,然后寫入Scrapy爬蟲文件中去。

7、對(duì)于點(diǎn)贊數(shù),其分析方法同之前一致,找到唯一的一個(gè)標(biāo)簽“vote-post-up”即可定位到數(shù)據(jù)。

在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)

8、點(diǎn)贊數(shù)在h20標(biāo)簽下,根據(jù)網(wǎng)頁(yè)結(jié)構(gòu)寫出CSS表達(dá)式,調(diào)試的過程如下圖所示。

在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)

取出的點(diǎn)贊數(shù)是個(gè)字符串,需要利用int()將其強(qiáng)制轉(zhuǎn)換為數(shù)字。

到此,關(guān)于“在Scrapy中怎么利用CSS選擇器從網(wǎng)頁(yè)中采集目標(biāo)數(shù)據(jù)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI