摘要:剩下的同學,我們繼續了可以看出,作為一個完善的電商網站,尚妝網有著普通電商網站所擁有的主要的元素,包括分類,分頁,主題等等。
系列教程
手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏
如果沒有看過第一課的朋友,請先移步第一課,第一課講了一些基礎性的東西,通過軟柿子"切糕王子"這個電商網站好好的練了一次手,相信大家都應該對寫爬蟲的流程有了一個大概的了解,那么這課咱們就話不多說,正式上戰場,對壘尚妝網。
首先,向我們被爬網站致敬,沒有他們提供數據,我們更是無從爬起,所以先安利一下尚妝網:
經營化妝品時尚購物,大數據為驅動,并依托智能首飾為入口的新一代智慧美妝正品電子商務平臺。其創始團隊來自天貓、支付寶、歐萊雅、薇姿等互聯網公司和化妝品集團。
好吧,我很懶,直接從百度知道里抄過來的,不過不代表我沒有誠意。OK,言歸正傳,我們先把我們的工具包拿出來:
1、神箭手云爬蟲,2、Chrome瀏覽器 3、Chrome的插件XpathHelper 不知道是干嘛的同學請移步第一課
古代戰士上戰場前,必須先好好的觀察對手,所謂知己知彼,百戰不殆。我們先來觀察一下尚妝網
從首頁大家能看出什么?說美女很美的,還有說美女表情很到位的同學,你們可以先回家了。
剩下的同學,我們繼續了:
可以看出,作為一個完善的電商網站,尚妝網有著普通電商網站所擁有的主要的元素,包括分類,分頁,主題等等。首先我們要確定我們希望要爬取哪一類數據,當然作為爬蟲來說,全部爬下來不是不行,不過對于做實驗來說,就沒必要了。好,我們假設:我們要爬護膚里的面膜品類所有商品,價格和銷量,至于為什么是面膜,你們猜呢?
廢話太多了,我們開始爬蟲三步走,跟著我再背誦一遍:1、選入口Url 2、限定內容頁和中間頁 3、寫內容頁抽取規則
1、選定入口url
這個簡單,找到面膜頁面的地址:
http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C
好,就是它了。
2、區分內容頁和中間頁
好,重點來了,尚妝網的列表頁面,是通過ajax動態加載了,這個怎么實現呢?我們先不著急,先看下內容頁
http://item.showjoy.com/sku/26551.html http://item.showjoy.com/sku/100374.html
內容頁很簡單,我們直接提取成正則表達式
http://item.showjoy.com/sku/d+.html
那么列表頁呢?首先,第一個當然是:
http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C
下一頁的鏈接是什么呢?這個時候就需要借助chrome瀏覽器的開發者工具,我們打開工具,切換到network選項卡,向下滑動加載下一頁,可以看到展示出的連接地址:
注意,可以忽略掉png這些圖片的文件,直接看到下一頁的連接,我們將鏈接復制出來:
http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C&stock=1&page=4&_synToken=59a6c555b0947486769f35d010353cd5
看著好像很復雜,不過page我認識,其他的可以去掉嗎?我們試一下訪問
http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C&page=4
貌似正常打開,而且也可以顯示不同的商品,就此我們可以看出來,這個ajax加載下一頁不過是一個紙老虎,根本沒什么可怕的。我們將這個提取成正則表達式,另外 值得注意的是,由于我們第一頁可能是沒有page的,所以也需要考慮沒有page參數的情況
6
http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C(&page=d+)?
第三步:就是寫內容頁的抽取規則了,我們就抽取商品名稱,評價數和成交數這三項數據吧,有人要問了,為啥不要價格呢。我只能說,too young too native,你打開商品頁面的時候,有沒有注意到價格的地方也一個快速的異步加載。考慮到咱們畢竟才第二課,而且剛剛還沒那個ajax搞得虎軀一震,差一點把這節課改成第三課,所以咱們這里先降低點難度,下一課咱們用一節課的時間來探討下這個價格該怎么提取。
根據前面課程教的方案,我們同樣的方法,寫出xpath:
標題: //h3[contains(@class,"choose-hd")] 評價: //div[contains(@class,"dtabs-hd")]/ul/li[2] 成交記錄://div[contains(@class,"dtabs-hd")]/ul/li[3]
通過xpath helper進行驗證之后沒有問題,這樣我們可以組合代碼得到下面的結果
var configs = { domains: ["www.showjoy.com","list.showjoy.com","item.showjoy.com"], scanUrls: ["http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C"], contentUrlRegexes: ["http://item.showjoy.com/sku/d+.html"], helperUrlRegexes: ["http://list.showjoy.com/search/?q=cateIds%3A1,cateName%3A%E9%9D%A2%E8%86%9C(&page=d+)?"],//可留空 fields: [ { // 第一個抽取項 name: "title", selector: "http://h3[contains(@class,"choose-hd")]",//默認使用XPath required: true //是否不能為空 }, { // 第二個抽取項 name: "comment", selector: "http://div[contains(@class,"dtabs-hd")]/ul/li[2]",//使用正則的抽取規則 required: false //是否不能為空 }, { // 第三個抽取項 name: "sales", selector: "http://div[contains(@class,"dtabs-hd")]/ul/li[3]",//使用正則的抽取規則 required: false //是否不能為空 } ] }; start(configs);
可以看到在domains里 我填入了三個域名,這里是一定要注意的,因為他的列表頁和詳情頁的域名都不一致,因此需要把每一個域名都寫進去。
好了,代碼運行正常,但是啟動任務之后發現,怎么第二頁的內容沒有采集到呢? 還有前面說的價格咱們也采集不到,到底還能不能愉快的玩耍了呢? 我們第三課就給大家講講如何解決ajax頁面的url發現和ajax加載內容的提取。
對爬蟲感興趣的童鞋可以加qq群討論:342953471。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79454.html
摘要:剩下的同學,我們繼續了可以看出,作為一個完善的電商網站,尚妝網有著普通電商網站所擁有的主要的元素,包括分類,分頁,主題等等。 系列教程 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 如果沒有看過第一課的朋友,請先移步第一課,第一課講了一些基礎性的東西,通過軟柿子切糕王子這個電商網站好好的練了一次手,相信大家都應該對寫爬蟲的流程有了一個大概的了解,那么這課咱們就話不多說,正式上戰場,對壘...
摘要:和前面幾節課類似的分析這節課就不做了,對于分頁,請求什么的,大家可以直接參考前面的四節課,這一刻主要特別的是,我們在采集商品的同時,會將京東的商品評價采集下來。 系列教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取 手把手教你寫電商爬蟲-第四課 淘寶網商品爬...
摘要:和前面幾節課類似的分析這節課就不做了,對于分頁,請求什么的,大家可以直接參考前面的四節課,這一刻主要特別的是,我們在采集商品的同時,會將京東的商品評價采集下來。 系列教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取 手把手教你寫電商爬蟲-第四課 淘寶網商品爬...
摘要:系列教程手把手教你寫電商爬蟲第一課找個軟柿子捏捏手把手教你寫電商爬蟲第二課實戰尚妝網分頁商品采集爬蟲看完兩篇,相信大家已經從開始的小菜鳥晉升為中級菜鳥了,好了,那我們就繼續我們的爬蟲課程。 系列教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 看完兩篇,相信大家已經從開始的小菜鳥晉升為中級菜鳥了,好了,那我們就繼續我們的爬蟲課...
閱讀 3236·2021-11-24 09:39
閱讀 2912·2021-09-09 11:34
閱讀 3190·2021-09-07 09:58
閱讀 2299·2019-08-30 13:07
閱讀 2859·2019-08-29 15:09
閱讀 1560·2019-08-29 13:01
閱讀 2300·2019-08-26 12:18
閱讀 1911·2019-08-26 10:28