手把手教你寫電商爬蟲(2):實戰尚妝網分頁商品採集爬蟲

發表於2016-08-01

手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏

如果沒有看過第一課的朋友,請先移步第一課,第一課講了一些基礎性的東西,通過軟柿子”切糕王子”這個電商網站好好的練了一次手,相信大家都應該對寫爬蟲的流程有了一個大概的瞭解,那麼這課我們們就話不多說,正式上戰場,對壘尚妝網。

首先,向我們被爬網站致敬,沒有他們提供資料,我們更是無從爬起,所以先安利一下尚妝網:

經營化妝品時尚購物,大資料為驅動,並依託智慧首飾為入口的新一代智慧美妝正品電子商務平臺。其創始團隊來自天貓、支付寶、歐萊雅、薇姿等網際網路公司和化妝品集團。
好吧,我很懶,直接從百度知道里抄過來的,不過不代表我沒有誠意。OK,言歸正傳,我們先把我們的工具包拿出來:

1、神箭手雲爬蟲,2、Chrome瀏覽器 3、Chrome的外掛XpathHelper 不知道是幹嘛的同學請移步第一課

古代戰士上戰場前,必須先好好的觀察對手,所謂知己知彼,百戰不殆。我們先來觀察一下尚妝網

手把手教你寫電商爬蟲(2):實戰尚妝網分頁商品採集爬蟲

從首頁大家能看出什麼?說美女很美的,還有說美女表情很到位的同學,你們可以先回家了。
手把手教你寫電商爬蟲(2):實戰尚妝網分頁商品採集爬蟲

剩下的同學,我們繼續了:

可以看出,作為一個完善的電商網站,尚妝網有著普通電商網站所擁有的主要的元素,包括分類,分頁,主題等等。首先我們要確定我們希望要爬取哪一類資料,當然作為爬蟲來說,全部爬下來不是不行,不過對於做實驗來說,就沒必要了。好,我們假設:我們要爬護膚裡的面膜品類所有商品,價格和銷量,至於為什麼是面膜,你們猜呢?

廢話太多了,我們開始爬蟲三步走,跟著我再背誦一遍:1、選入口Url 2、限定內容頁和中間頁 3、寫內容頁抽取規則

1、選定入口url

這個簡單,找到面膜頁面的地址:

好,就是它了。

2、區分內容頁和中間頁

好,重點來了,尚妝網的列表頁面,是通過ajax動態載入了,這個怎麼實現呢?我們先不著急,先看下內容頁

內容頁很簡單,我們直接提取成正規表示式

那麼列表頁呢?首先,第一個當然是:

下一頁的連結是什麼呢?這個時候就需要藉助chrome瀏覽器的開發者工具,我們開啟工具,切換到network選項卡,向下滑動載入下一頁,可以看到展示出的連線地址:

手把手教你寫電商爬蟲(2):實戰尚妝網分頁商品採集爬蟲

注意,可以忽略掉png這些圖片的檔案,直接看到下一頁的連線,我們將連結複製出來:

看著好像很複雜,不過page我認識,其他的可以去掉嗎?我們試一下訪問

貌似正常開啟,而且也可以顯示不同的商品,就此我們可以看出來,這個ajax載入下一頁不過是一個紙老虎,根本沒什麼可怕的。我們將這個提取成正規表示式,另外 值得注意的是,由於我們第一頁可能是沒有page的,所以也需要考慮沒有page引數的情況
6

第三步:就是寫內容頁的抽取規則了,我們就抽取商品名稱,評價數和成交數這三項資料吧,有人要問了,為啥不要價格呢。我只能說,too young too native,你開啟商品頁面的時候,有沒有注意到價格的地方也一個快速的非同步載入。考慮到我們們畢竟才第二課,而且剛剛還沒那個ajax搞得虎軀一震,差一點把這節課改成第三課,所以我們們這裡先降低點難度,下一課我們們用一節課的時間來探討下這個價格該怎麼提取。

手把手教你寫電商爬蟲(2):實戰尚妝網分頁商品採集爬蟲

根據前面課程教的方案,我們同樣的方法,寫出xpath:

通過xpath helper進行驗證之後沒有問題,這樣我們可以組合程式碼得到下面的結果

可以看到在domains裡 我填入了三個域名,這裡是一定要注意的,因為他的列表頁和詳情頁的域名都不一致,因此需要把每一個域名都寫進去。
好了,程式碼執行正常,但是啟動任務之後發現,怎麼第二頁的內容沒有采集到呢? 還有前面說的價格我們們也採集不到,到底還能不能愉快的玩耍了呢? 我們第三課就給大家講講如何解決ajax頁面的url發現和ajax載入內容的提取。

相關文章