Python CSS選擇器爬取京東網(wǎng)商品信息過程解析
CSS選擇器
目前,除了官方文檔之外,市面上及網(wǎng)絡(luò)詳細(xì)介紹BeautifulSoup使用的技術(shù)書籍和博客軟文并不多,而在這僅有的資料中介紹CSS選擇器的少之又少。在網(wǎng)絡(luò)爬蟲的頁(yè)面解析中,CCS選擇器實(shí)際上是一把效率甚高的利器。雖然資料不多,但官方文檔卻十分詳細(xì),然而美中不足的是需要一定的基礎(chǔ)才能看懂,而且沒有小而精的演示實(shí)例。

京東商品圖
首先進(jìn)入京東網(wǎng),輸入自己想要查詢的商品,向服務(wù)器發(fā)送網(wǎng)頁(yè)請(qǐng)求。在這里小編仍以關(guān)鍵詞“狗糧”作為搜索對(duì)象,之后得到后面這一串網(wǎng)址:
https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其中參數(shù)的意思就是我們輸入的keyword,在本例中該參數(shù)代表“狗糧”,具體詳情可以參考Python大神用正則表達(dá)式教你搞定京東商品信息。所以,只要輸入keyword這個(gè)參數(shù)之后,將其進(jìn)行編碼,就可以獲取到目標(biāo)URL。之后請(qǐng)求網(wǎng)頁(yè),得到響應(yīng),爾后利用CSS選擇器進(jìn)行下一步的數(shù)據(jù)采集。
商品信息在京東官網(wǎng)上的部分網(wǎng)頁(yè)源碼如下圖所示:

部分網(wǎng)頁(yè)源碼
仔細(xì)觀察源碼,可以發(fā)現(xiàn)我們所需的目標(biāo)信息在紅色框框的下面,那么接下來我們就要一層一層的去獲取想要的信息。
在Python的urllib庫(kù)中提供了quote方法,可以實(shí)現(xiàn)對(duì)URL的字符串進(jìn)行編碼,從而可以進(jìn)入到對(duì)應(yīng)的網(wǎng)頁(yè)中去。

CSS選擇器在線復(fù)制
很多小伙伴都覺得CSS表達(dá)式很難寫,其實(shí)掌握了基本的用法也就不難了。在線復(fù)制CSS表達(dá)式如上圖所示,可以很方便的復(fù)制CSS表達(dá)式。但是通過該方法得到的CSS表達(dá)式放在程序中一般不能用,而且長(zhǎng)的沒法看。所以CSS表達(dá)式一般還是要自己親自上手。
直接上代碼,利用CSS去提取目標(biāo)信息,如商品的名字、鏈接、圖片和價(jià)格,具體的代碼如下圖所示:

代碼實(shí)現(xiàn)
如果你想快速的實(shí)現(xiàn)功能更強(qiáng)大的網(wǎng)絡(luò)爬蟲,那么BeautifulSoupCSS選擇器將是你必備的利器之一。BeautifulSoup整合了CSS選擇器的語法和自身方便使用API。在網(wǎng)絡(luò)爬蟲的開發(fā)過程中,對(duì)于熟悉CSS選擇器語法的人,使用CSS選擇器是個(gè)非常方便的方法。
最后得到的效果圖如下所示:

最終效果圖
新鮮的狗糧再一次出爐咯~~~

CSS選擇器
關(guān)于CSS選擇器的簡(jiǎn)單介紹:
BeautifulSoup支持大部分的CSS選擇器。其語法為:向tag對(duì)象或BeautifulSoup對(duì)象的.select()方法中傳入字符串參數(shù),選擇的結(jié)果以列表形式返回,即返回類型為list。
tag.select("string")
BeautifulSoup.select("string")
注意:在取得含有特定CSS屬性的元素時(shí),標(biāo)簽名不加任何修飾,如class類名前加點(diǎn),id名前加 /#。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
用Python將動(dòng)態(tài)GIF圖片倒放播放的方法
GIF(Graphics Interchange Format) 是一種可以用來呈現(xiàn)動(dòng)畫效果的圖片格式,原理就是保存很多幀(Frame)靜態(tài)圖像,然后連續(xù)呈現(xiàn)。這篇文章主要介紹了用Python將動(dòng)態(tài)GIF圖片倒放播放的方法,需要的朋友可以參考下2016-11-11
Python爬蟲+tkinter界面實(shí)現(xiàn)歷史天氣查詢的思路詳解
這篇文章主要介紹了Python爬蟲+tkinter界面實(shí)現(xiàn)歷史天氣查詢的思路詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Python第三方包之DingDingBot釘釘機(jī)器人
這篇文章主要介紹了Python第三方包之DingDingBot釘釘機(jī)器人,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
selenium自動(dòng)化測(cè)試簡(jiǎn)單準(zhǔn)備
本文主要介紹了selenium自動(dòng)化測(cè)試簡(jiǎn)單準(zhǔn)備,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Python Django 頁(yè)面上展示固定的頁(yè)碼數(shù)實(shí)現(xiàn)代碼
這篇文章主要介紹了Python Django 頁(yè)面上展示固定的頁(yè)碼數(shù)實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python讀寫文件模式和文件對(duì)象方法實(shí)例詳解
這篇文章主要介紹了Python讀寫文件模式和文件對(duì)象方法,結(jié)合實(shí)例形式詳細(xì)分析了Python文件操作常用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-09-09

