自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Scrapy中如何利用CSS選擇器從網(wǎng)頁中采集目標(biāo)數(shù)據(jù)——詳細(xì)教程(上篇)

開發(fā) 前端
今天小編給大家介紹Scrapy中另外一種選擇器,即大家經(jīng)常聽說的CSS選擇器。

[[349166]]

/前言/

今天小編給大家介紹Scrapy中另外一種選擇器,即大家經(jīng)常聽說的CSS選擇器。

 

/CSS基礎(chǔ)/

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

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

CSS選擇器功能強(qiáng)大,從實用性出發(fā),下面是部分比較常用的一些CSS選擇器語法,相對來說比較簡單,但是也是非常實用的語法,希望大家都可以牢牢掌握,后期在提取網(wǎng)頁信息的時候?qū)掳牍Ρ丁?/p>

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

 

/實際應(yīng)用/

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

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

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

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

 

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

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

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

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

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

 

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

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

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

 

/小結(jié)/

本文基于CSS理論基礎(chǔ),主要介紹了CSS選擇器的簡單語法和利用CSS選擇器做相關(guān)數(shù)據(jù)采集,下一篇文章將繼續(xù)分享CSS表達(dá)式數(shù)據(jù)采集方法,敬請期待,希望對大家的學(xué)習(xí)有幫助。

想學(xué)習(xí)更多關(guān)于Python的知識,可以參考學(xué)習(xí)網(wǎng)址:http://pdcfighting.com/,點(diǎn)擊閱讀原文,可以直達(dá)噢~

 

責(zé)任編輯:姜華 來源: Python爬蟲與數(shù)據(jù)挖掘
相關(guān)推薦

2020-10-25 08:06:08

Scrapy

2020-10-25 08:15:47

Scrapy

2020-10-21 08:49:17

Scrapy

2020-11-11 10:58:59

Scrapy

2010-09-03 09:30:29

CSS選擇器

2010-09-07 12:56:49

id選擇器CSS

2010-09-07 11:14:32

CSS屬性選擇器CSS

2013-03-11 10:30:56

CSSWeb

2023-03-16 10:20:55

CSS選擇器

2010-09-14 14:10:36

CSS樣式表

2010-08-26 12:47:15

CSSclass

2010-09-06 08:52:00

CSS選擇器

2023-01-30 08:42:33

CSS選擇器性能

2015-11-17 09:37:52

網(wǎng)頁設(shè)計黃金比例

2020-10-25 08:57:56

CSS前端瀏覽器

2011-10-24 10:30:20

CSS

2012-01-04 11:09:10

Java采集器

2023-07-28 08:23:05

選擇器Java NIO

2022-04-01 09:02:19

CSS選擇器HTML

2022-04-14 09:01:19

CSS父選擇器CSS類
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號