摘要:老規矩,爬之前首先感謝淘寶公布出這么多有價值的數據,才讓我們這些爬蟲們有東西可以搜集啊,不過淘寶就不用我來安利了廣大剁手黨相信睡覺的時候都能把網址打出來吧。
系列教程:
手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏
手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲
手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取
都已經三節課了,大家活動活動手腳,咱們開始一場真正的硬仗, 我們要來爬電商老大,淘寶的數據了。
老規矩,爬之前首先感謝淘寶公布出這么多有價值的數據,才讓我們這些爬蟲們有東西可以搜集啊,不過淘寶就不用我來安利了
廣大剁手黨相信睡覺的時候都能把網址打出來吧。
工欲善其事,必先利其器,先上工具:
1、神箭手云爬蟲,2、Chrome瀏覽器 3、Chrome的插件XpathHelper 不知道是干嘛的同學請移步第一課
好了,咱們還是先打開淘寶網:
清新的畫面,琳瑯滿目的商品,隱約感到的是前方是一場惡戰:
淘寶這么多的商品,這么多的主題,到底從哪里開始呢?要不就女裝了,別問我為什么,咱們先打開一個女裝的列表頁面:
https://s.taobao.com/list?q=%E5%A5%97%E8%A3%85%E5%A5%B3%E5%A4%8F
我們點擊一下下一頁看看連接:
https://s.taobao.com/list?q=%E5%A5%97%E8%A3%85%E5%A5%B3%E5%A4%8F&bcoffset=-4&s=60
看著好像不難,很簡單,不過值得注意的是,我們把鼠標移到下一頁可以看到連接本身并不是這個,這個是js處理的,這種情況類似前面我們遇到的尚妝網下一頁,我們一會再說。
我們再看下詳情頁
https://item.taobao.com/item.htm?spm=a217f.7283053.1997524073.204.hEmtfc&id=527101625954&scm=1029.minilist-17.1.16&ppath=&sku=&ug=#detail https://item.taobao.com/item.htm?spm=a217f.7283053.1997524073.209.hEmtfc&id=528697742170&scm=1029.minilist-17.1.16&ppath=&sku=&ug=#detail
看著比較簡單,就直接提取成:
https://item.taobao.com/item.htm?.*
我比較懶,這個就先這樣吧,然后我們來看看詳情頁我們需要抽取哪些信息,商品名稱,價格自然不能少,這次再來一個新鮮的,就是縮略圖列表,因為淘寶的商品不只有一個縮略圖,因此需要爬取一個縮略圖數組。
同樣,用chrome開發者工具和xpathhelper對抽取項進行分析,看了一下結果,嘗試過濾xhr,結果:
高手就是高手,在大量的請求中,找到響應的請求,相當的困難。不要緊,還記得我們上節課提到的核武器嗎-JS渲染引擎,只要我們把JS渲染引擎打開,那么我們完全不用操心大量ajax請求的判斷,當然他的問題是效率低一些,不過沒關系,反正在云上跑嘛,睡一覺就好了。
在神箭手里調用JS渲染引擎的方式很簡單,只需要一行代碼設置既可:
configs.enableJS=true
好了,那我們現在可以無視ajax請求了,直接用chrome工具打開,直接提取:
//em[@id="J_PromoPriceNum"]
簡單暴啦,然后高興沒有1秒鐘,瞬間蒙逼,淘寶上的價格不僅有這種促銷價格,還有價格區間,還有的是普通的價格,我的天的,這不是要人命嗎~
沒辦法,再難也要硬著頭皮上,目前來看,一共有兩種價格的抽取方式,當然不排除有其他多種的情況,我們先對這兩種分別寫一下抽取規則:
//em[@id="J_PromoPriceNum"] //em[contains(@class,"tb-rmb-num")]
我們可以通過 | 這個來連接,表達不同頁面的選取可以共存
//em[@id="J_PromoPriceNum"] | //em[contains(@class,"tb-rmb-num")]
不容易。我們再看看商品名稱,這個相對簡單:
//h3[contains(@class,"tb-main-title")]/@data-title
最后,我們需要抽取圖片的地址:
//ul[@id="J_UlThumb"]/li//img/@src
由于這一項存在多項,因此需要將該抽取規則的repeated字段設置成true
var configs = { domains: ["www.taobao.com","item.taobao.com"], scanUrls: ["https://www.taobao.com/go/market/nvzhuang/citiao/taozhuangqun.php"], contentUrlRegexes: ["https://item.taobao.com/item.htm?.*"], helperUrlRegexes: ["https://www.taobao.com/go/market/nvzhuang/citiao/taozhuangqun.php"],//可留空 enableJS:true, fields: [ { // 第一個抽取項 name: "title", selector: "http://h3[contains(@class,"tb-main-title")]/@data-title",//默認使用XPath required: true //是否不能為空 }, { // 第二個抽取項 name: "price", selector: "http://em[@id="J_PromoPriceNum"] | //em[contains(@class,"tb-rmb-num")]",//默認使用XPath }, { // 第三個抽取項 name: "thumbs", selector: "http://ul[@id="J_UlThumb"]/li//img/@src",//默認使用XPath }, ] }; var crawler = new Crawler(configs); crawler.start();
好了,雖然淘寶比尚妝網難的多,但是在我們拿出核武器之后,一切迎刃而解,回頭我們在來處理下一頁的問題,這里雖然和尚妝網不一樣,但是整體的原理大同小異,就不一一解釋,我們直接上代碼:
var configs = { domains: ["s.taobao.com","item.taobao.com"], scanUrls: ["https://s.taobao.com/list?q=%E5%A5%97%E8%A3%85%E5%A5%B3%E5%A4%8F"], contentUrlRegexes: ["https?://item.taobao.com/item.htm?.*"], helperUrlRegexes: ["https?://s.taobao.com/list?q=%E5%A5%97%E8%A3%85%E5%A5%B3%E5%A4%8F.*"],//可留空 enableJS:true, fields: [ { // 第一個抽取項 name: "title", selector: "http://h3[contains(@class,"tb-main-title")]/@data-title",//默認使用XPath required: true //是否不能為空 }, { // 第二個抽取項 name: "price", selector: "http://em[@id="J_PromoPriceNum"] | //em[contains(@class,"tb-rmb-num")]",//默認使用XPath required: true //是否不能為空 }, { // 第三個抽取項 name: "thumbs", selector: "http://ul[@id="J_UlThumb"]/li//img/@src",//默認使用XPath repeated:true }, ] }; configs.onProcessHelperUrl = function(url, content, site){ if(!content.indexOf("未找到與")){ var currentStart = parseInt(url.substring(url.indexOf("&s=") + 3)); var start = currentStart + 60; var nextUrl = url.replace("&s=" + currentStart, "&s=" + start); site.addUrl(nextUrl); } return true; }; var crawler = new Crawler(configs); crawler.start();
OK 大功告成,測試結果如下,由于開啟的js渲染,所以爬取的速度比較慢,只能耐心等待了。
對爬蟲感興趣的童鞋可以加qq群討論:342953471。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79452.html
摘要:老規矩,爬之前首先感謝淘寶公布出這么多有價值的數據,才讓我們這些爬蟲們有東西可以搜集啊,不過淘寶就不用我來安利了廣大剁手黨相信睡覺的時候都能把網址打出來吧。 系列教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取 都已經三節課了,大家活動活動手腳,咱們開始一場...
摘要:和前面幾節課類似的分析這節課就不做了,對于分頁,請求什么的,大家可以直接參考前面的四節課,這一刻主要特別的是,我們在采集商品的同時,會將京東的商品評價采集下來。 系列教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取 手把手教你寫電商爬蟲-第四課 淘寶網商品爬...
摘要:和前面幾節課類似的分析這節課就不做了,對于分頁,請求什么的,大家可以直接參考前面的四節課,這一刻主要特別的是,我們在采集商品的同時,會將京東的商品評價采集下來。 系列教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰尚妝網分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取 手把手教你寫電商爬蟲-第四課 淘寶網商品爬...
閱讀 3514·2023-04-25 20:09
閱讀 3720·2022-06-28 19:00
閱讀 3035·2022-06-28 19:00
閱讀 3058·2022-06-28 19:00
閱讀 3132·2022-06-28 19:00
閱讀 2859·2022-06-28 19:00
閱讀 3014·2022-06-28 19:00
閱讀 2610·2022-06-28 19:00