1. 程式人生 > 程式設計 >Python CSS選擇器爬取京東網商品資訊過程解析

Python CSS選擇器爬取京東網商品資訊過程解析

CSS選擇器

目前,除了官方文件之外,市面上及網路詳細介紹BeautifulSoup使用的技術書籍和部落格軟文並不多,而在這僅有的資料中介紹CSS選擇器的少之又少。在網路爬蟲的頁面解析中,CCS選擇器實際上是一把效率甚高的利器。雖然資料不多,但官方文件卻十分詳細,然而美中不足的是需要一定的基礎才能看懂,而且沒有小而精的演示例項。

Python CSS選擇器爬取京東網商品資訊過程解析

京東商品圖

首先進入京東網,輸入自己想要查詢的商品,向伺服器傳送網頁請求。在這裡小編仍以關鍵詞“狗糧”作為搜尋物件,之後得到後面這一串網址:
https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其中引數的意思就是我們輸入的keyword,在本例中該引數代表“狗糧”,具體詳情可以參考Python大神用正則表示式教你搞定京東商品資訊。所以,只要輸入keyword這個引數之後,將其進行編碼,就可以獲取到目標URL。之後請求網頁,得到響應,爾後利用CSS選擇器進行下一步的資料採集。

商品資訊在京東官網上的部分網頁原始碼如下圖所示:

Python CSS選擇器爬取京東網商品資訊過程解析

部分網頁原始碼

仔細觀察原始碼,可以發現我們所需的目標資訊在紅色框框的下面,那麼接下來我們就要一層一層的去獲取想要的資訊。

在Python的urllib庫中提供了quote方法,可以實現對URL的字串進行編碼,從而可以進入到對應的網頁中去。

Python CSS選擇器爬取京東網商品資訊過程解析

CSS選擇器線上複製

很多小夥伴都覺得CSS表示式很難寫,其實掌握了基本的用法也就不難了。線上複製CSS表示式如上圖所示,可以很方便的複製CSS表示式。但是通過該方法得到的CSS表示式放在程式中一般不能用,而且長的沒法看。所以CSS表示式一般還是要自己親自上手。

直接上程式碼,利用CSS去提取目標資訊,如商品的名字、連結、圖片和價格,具體的程式碼如下圖所示:

Python CSS選擇器爬取京東網商品資訊過程解析

程式碼實現

如果你想快速的實現功能更強大的網路爬蟲,那麼BeautifulSoupCSS選擇器將是你必備的利器之一。BeautifulSoup整合了CSS選擇器的語法和自身方便使用API。在網路爬蟲的開發過程中,對於熟悉CSS選擇器語法的人,使用CSS選擇器是個非常方便的方法。

最後得到的效果圖如下所示:

Python CSS選擇器爬取京東網商品資訊過程解析

最終效果圖

新鮮的狗糧再一次出爐咯~~~

Python CSS選擇器爬取京東網商品資訊過程解析

CSS選擇器

關於CSS選擇器的簡單介紹:

BeautifulSoup支援大部分的CSS選擇器。其語法為:向tag物件或BeautifulSoup物件的.select()方法中傳入字串引數,選擇的結果以列表形式返回,即返回型別為list。

tag.select("string")

BeautifulSoup.select("string")

注意:在取得含有特定CSS屬性的元素時,標籤名不加任何修飾,如class類名前加點,id名前加 /#。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。