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