這篇文章主要講解了Python如何利用Xpath選擇器爬取京東網(wǎng)商品信息,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比莊河網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式莊河網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋莊河地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。HTML文件其實(shí)就是由一組尖括號(hào)構(gòu)成的標(biāo)簽組織起來的,每一對(duì)尖括號(hào)形式一個(gè)標(biāo)簽,標(biāo)簽之間存在上下關(guān)系,形成標(biāo)簽樹;XPath 使用路徑表達(dá)式在 XML 文檔中選取節(jié)點(diǎn)。節(jié)點(diǎn)是通過沿著路徑或者 step 來選取的。
首先進(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),爾后利用bs4選擇器進(jìn)行下一步的數(shù)據(jù)采集。
商品信息在京東官網(wǎng)上的部分網(wǎng)頁(yè)源碼如下圖所示:
狗糧信息在京東官網(wǎng)上的網(wǎng)頁(yè)源碼
仔細(xì)觀察源碼,可以發(fā)現(xiàn)我們所需的目標(biāo)信息是存在
通常URL編碼的方式是把需要編碼的字符轉(zhuǎn)化為%xx的形式,一般來說URL的編碼是基于UTF-8的,當(dāng)然也有的于瀏覽器平臺(tái)有關(guān)。在Python的urllib庫(kù)中提供了quote方法,可以實(shí)現(xiàn)對(duì)URL的字符串進(jìn)行編碼,從而可以進(jìn)入到對(duì)應(yīng)的網(wǎng)頁(yè)中去。
在線復(fù)制Xpath表達(dá)式
很多小伙伴都覺得Xpath表達(dá)式很難寫,其實(shí)掌握了基本的用法也就不難了。在線復(fù)制Xpath表達(dá)式如上圖所示,可以很方便的復(fù)制Xpath表達(dá)式。但是通過該方法得到的Xpath表達(dá)式放在程序中一般不能用,而且長(zhǎng)的沒法看。所以Xpath表達(dá)式一般還是要自己親自上手。
直接上代碼,利用Xpath去提取目標(biāo)信息,如商品的名字、鏈接、圖片和價(jià)格,具體的代碼如下圖所示:
爬蟲代碼
在這里,小編告訴大家一個(gè)Xpath表達(dá)式匹配技巧。之前看過好幾篇文章,大佬們都推薦Xpath表達(dá)式使用嵌套匹配的方式。在本例中,首先定義items,如下所示:
items = selector.xpath('//li[@class="gl-item"]')
之后通過range函數(shù),逐個(gè)從網(wǎng)頁(yè)中進(jìn)行匹配目標(biāo)信息,而不是直接通過復(fù)制Xpath表達(dá)式的方式一步到位。希望小伙伴們以后都可以少入這個(gè)坑~~
最后得到的效果圖如下所示:
最終效果圖
新鮮的狗糧再一次出爐咯~~~
小伙伴們,有沒有發(fā)現(xiàn)利用Xpath來獲取目標(biāo)信息比正則表達(dá)式要簡(jiǎn)單一些呢?
看完上述內(nèi)容,是不是對(duì)Python如何利用Xpath選擇器爬取京東網(wǎng)商品信息有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。