Python CSS選擇器爬取京東網(wǎng)商品信息過(guò)程解析
CSS選擇器
目前,除了官方文檔之外,市面上及網(wǎng)絡(luò)詳細(xì)介紹BeautifulSoup使用的技術(shù)書(shū)籍和博客軟文并不多,而在這僅有的資料中介紹CSS選擇器的少之又少。在網(wǎng)絡(luò)爬蟲(chóng)的頁(yè)面解析中,CCS選擇器實(shí)際上是一把效率甚高的利器。雖然資料不多,但官方文檔卻十分詳細(xì),然而美中不足的是需要一定的基礎(chǔ)才能看懂,而且沒(méi)有小而精的演示實(shí)例。
京東商品圖
首先進(jìn)入京東網(wǎng),輸入自己想要查詢(xún)的商品,向服務(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ì)觀(guān)察源碼,可以發(fā)現(xiàn)我們所需的目標(biāo)信息在紅色框框的下面,那么接下來(lái)我們就要一層一層的去獲取想要的信息。
在Python的urllib庫(kù)中提供了quote方法,可以實(shí)現(xiàn)對(duì)URL的字符串進(jìn)行編碼,從而可以進(jìn)入到對(duì)應(yīng)的網(wǎng)頁(yè)中去。
CSS選擇器在線(xiàn)復(fù)制
很多小伙伴都覺(jué)得CSS表達(dá)式很難寫(xiě),其實(shí)掌握了基本的用法也就不難了。在線(xiàn)復(fù)制CSS表達(dá)式如上圖所示,可以很方便的復(fù)制CSS表達(dá)式。但是通過(guò)該方法得到的CSS表達(dá)式放在程序中一般不能用,而且長(zhǎng)的沒(méi)法看。所以CSS表達(dá)式一般還是要自己親自上手。
直接上代碼,利用CSS去提取目標(biāo)信息,如商品的名字、鏈接、圖片和價(jià)格,具體的代碼如下圖所示:
代碼實(shí)現(xiàn)
如果你想快速的實(shí)現(xiàn)功能更強(qiáng)大的網(wǎng)絡(luò)爬蟲(chóng),那么BeautifulSoupCSS選擇器將是你必備的利器之一。BeautifulSoup整合了CSS選擇器的語(yǔ)法和自身方便使用API。在網(wǎng)絡(luò)爬蟲(chóng)的開(kāi)發(fā)過(guò)程中,對(duì)于熟悉CSS選擇器語(yǔ)法的人,使用CSS選擇器是個(gè)非常方便的方法。
最后得到的效果圖如下所示:
最終效果圖
新鮮的狗糧再一次出爐咯~~~
CSS選擇器
關(guān)于CSS選擇器的簡(jiǎn)單介紹:
BeautifulSoup支持大部分的CSS選擇器。其語(yǔ)法為:向tag對(duì)象或BeautifulSoup對(duì)象的.select()方法中傳入字符串參數(shù),選擇的結(jié)果以列表形式返回,即返回類(lèi)型為list。
tag.select('string')
BeautifulSoup.select('string')
注意:在取得含有特定CSS屬性的元素時(shí),標(biāo)簽名不加任何修飾,如class類(lèi)名前加點(diǎn),id名前加 /#。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向2. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明3. CSS hack用法案例詳解4. PHP設(shè)計(jì)模式中工廠(chǎng)模式深入詳解5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. ASP+ajax實(shí)現(xiàn)頂一下、踩一下同支持與反對(duì)的實(shí)現(xiàn)代碼7. JSP數(shù)據(jù)交互實(shí)現(xiàn)過(guò)程解析8. ThinkPHP5實(shí)現(xiàn)JWT Token認(rèn)證的過(guò)程(親測(cè)可用)9. asp中response.write("中文")或者js中文亂碼問(wèn)題10. PHP session反序列化漏洞超詳細(xì)講解
