如何利用CSS選擇器抓取京東網商品資訊

前幾天小編分別利用Python正則表達式BeautifulSoupXpath分別爬取了京東網商品資訊,今天小編利用CSS選擇器來為大家展示一下如何實現京東商品資訊的精準匹配~~

如何利用CSS選擇器抓取京東網商品資訊

CSS選擇器

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

如何利用CSS選擇器抓取京東網商品資訊

京東商品圖

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

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

如何利用CSS選擇器抓取京東網商品資訊

部分網頁源碼

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

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

如何利用CSS選擇器抓取京東網商品資訊

CSS選擇器在線複製

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

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

如何利用CSS選擇器抓取京東網商品資訊

程式碼實現

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

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

如何利用CSS選擇器抓取京東網商品資訊

最終效果圖

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

如何利用CSS選擇器抓取京東網商品資訊

CSS選擇器

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

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

tag.select(“string”)

BeautifulSoup.select(“string”)

注意:在取得含有特定CSS屬性的元素時,標籤名不加任何修飾,如class類名前加點,id名前加 /#。
想學習更多Python網路爬蟲與數據挖掘知識,可前往專業網站://pdcfighting.com/