1. 程式人生 > >手把手教你寫電商爬蟲(1):找個軟柿子捏捏

手把手教你寫電商爬蟲(1):找個軟柿子捏捏

工具要求:教程中主要使用到了 1、神箭手雲爬蟲框架 這個是爬蟲的基礎,2、Chrome瀏覽器和Chrome的外掛XpathHelper 這個用來測試Xpath寫的是否正確
基礎知識:本教程中主要用到了一些基礎的js和xpath語法,如果對這兩種語言不熟悉,可以提前先學習下,都很簡單

教程正式開始,現在電商網站很多,牛逼哄哄的淘寶京東,新晉貴族唯品會聚美優品 海淘的美麗說higo網易惠惠等等,作為新手,上來打boss的結果必定是灰屏回家,所以 我們現在新手村附近找個小弟練練級吧。

找小弟也要有找小弟的辦法,我們就去it橘子上看看有沒有什麼新的電商公司試試,找了一圈,就相中了這個切糕王子,名字霸氣,內容簡單,非常適合我們這種新手練手,掌握一下基本技能。

那我們就正式開始,首先,我們開啟切糕王子的商品列表頁

12 http://www.qiegaowz.com/product/Default.html

只有5款商品,果然是網際網路思維,爆品邏輯。頓時讓我們有種用大炮大蚊子的趕腳,寫個爬蟲的時間,不如手動複製了。不過,誰讓我們是程式設計師呢?手動複製這麼low的事情說出去都丟不起這個人。

開始前先給大家普及一下爬蟲的基本步驟:

1.選定入口url,也叫種子url,就是讓爬蟲從哪個頁面開始爬
2.區分哪些是內容頁面,也就是我們需要抽取資料的頁面,哪些是中間頁,就是連線其他頁面,沒有我們需要的資料的頁面
3.對內容頁寫抽取規則
4.開始爬蟲

好了,那我們就開始了

第一步來:這個網站的入口url很簡單,就一個頁面

12 http://www.qiegaowz.com/product/Default.html

就是他了,也沒別人

第二步:內容頁面就是那5個商品的頁面

123456 http://www.qiegaowz.com/product/5ee97997-1700-4d19-b93a-6bd7c930fefe.htmlhttp://www.qiegaowz.com/product/ccdf1d03-58da-48a9-bfd2-d9c403b56c98.htmlhttp://www.qiegaowz.com/product/1f44feec-751a-4656-9e42-ec1cb7d8dee6.htmlhttp://www.qiegaowz.com/product/83106246-d38e-42da-a0a4-2289f699b066.htmlhttp://www.qiegaowz.com/product/a723b3cc-91f0-495f-b7b8-792b4470a6e6.html

神箭手框架裡是將內容頁用正則表示式來限制的,那沒這幾個頁面統一一個正則的話就是

Python
1 http://www\\.qiegaowz\\.com/product/[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}\\.html

什麼?有人覺得這個太難了,那我們可以再簡單一點:

12 http://www\\.qiegaowz\\.com/product/.{36}\\.html

特別提醒,在正則表示式中,”.”和”?”這個字元是需要轉義的,這些千萬不能寫錯了。

中間頁的話,就是http://www.qiegaowz.com/product/Default.html,轉換成正則的格式:

12 http://www\\.qiegaowz\\.com/product/Default\\.html

第三步:我們開啟其中一個商品的頁面

發現整個頁面沒啥內容,我們就勉強來分成三個部分吧,分別是 縮圖,商品名稱,內容

先看縮圖:我們用chrome開啟,並開啟開發者工具:

根據html的層級結構,主要找class和ID的節點,我們可以看到我們這個圖片的自己的標籤是img標籤,沒有什麼特別的屬性,那沒看他的父標籤,

我們來查一下發現這個showpic再整個頁面裡面出現了1次,那麼用這個showpic的class就可以直接定位到這個圖片,xpath的寫法就是:

12 //div[contains(@class,'showpic')]/img/@src

簡單解釋下xpath,開始的兩個//代表著從根目錄開始不確定過了多少級,如果是單/則代表是一級層級關係,class屬性的選擇我們通常使用contains是為了防止一個標籤有多個class,最後因為我們要獲取的是圖片的地址,所以最終我們要選取到src屬性,好了 我們寫完之後 用xpathhelper檢測一下對不對

沒問題,另外兩個抽取項在這裡就不詳細解釋了,方式大同小異,直接放結果:

1234 //div[contains(@class,'showpic')]/img/@src//div[contains(@class,'showproduct')]/h1//div[contains(@class,'shownewdes')]

OK,那麼到這裡,我們爬蟲的準備工作已經做完了,根據神箭手框架的文件,我們將我們的準備好的程式碼組裝一下如下,

1234567891011121314151617181920212223242526 varconfigs={domains:["www.qiegaowz.com"],scanUrls:["http://www.qiegaowz.com/product/Default.html"],contentUrlRegexes:["http://www\\.qiegaowz\\.com/product/.{36}\\.html"],helpUrlRegexes:["http://www\\.qiegaowz\\.com/product/Default\\.html"],fields:[{// 商品縮圖  name:"thumbnail",selector:"//div[contains(@class,'showpic')]/img/@src",},{// 商品標題  name:"title",selector:"//div[contains(@class,'showproduct')]/h1",},{// 商品內容  name:"content",selector:"//div[contains(@class,'shownewdes')]",}]};start(configs);

到這裡就大功告成了,我們將程式碼複製神箭手後臺程式碼中,儲存並測試下,順利爬到資料。

不過還有一些遺留問題,如商品內容中有一些我們不需要的內容,如何去掉,這個我們可以在後面的教程中詳細解釋。

相關推薦

手把手爬蟲(1):柿子

工具要求:教程中主要使用到了 1、神箭手雲爬蟲框架 這個是爬蟲的基礎,2、Chrome瀏覽器和Chrome的外掛XpathHelper 這個用來測試Xpath寫的是否正確 基礎知識:本教程中主要用到了一些基礎的js和xpath語法,如果對這兩種語言不熟悉,可以提前先學習下,都很簡單 教程正式開始,現在電商網

手把手爬蟲(3):實戰尚妝網AJAX請求處理和內容提取

看完兩篇,相信大家已經從開始的小菜鳥晉升為中級菜鳥了,好了,那我們就繼續我們的爬蟲課程。 上一課呢一定是因為對手太強,導致我們並沒有完整的完成尚妝網的爬蟲。 吭吭~,我們這一課繼續,爭取徹底搞定尚妝網,不留任何遺憾。 我們先回顧一下,上一課主要遺留了兩個問題,兩個問題都和a

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

如果沒有看過第一課的朋友,請先移步第一課,第一課講了一些基礎性的東西,通過軟柿子”切糕王子”這個電商網站好好的練了一次手,相信大家都應該對寫爬蟲的流程有了一個大概的瞭解,那麼這課咱們就話不多說,正式上戰場,對壘尚妝網。 首先,向我們被爬網站致敬,沒有他們提供資料,我們更是無從爬起,所以先安利一下尚妝網: 經

手把手爬蟲-第四課 淘寶網商品爬蟲自動JS渲染

系列教程: 手把手教你寫電商爬蟲-第三課 實戰尚妝網AJAX請求處理和內容提取都已經三節課了,大家活動活動手腳,咱們開始一場真正的硬仗, 我們要來爬電商老大,淘寶的資料了。 老規矩,爬之前首先感謝淘寶公佈出這麼多有價值的資料,才讓我們這些爬蟲們有東西可以蒐集啊,不過淘寶

手把手實現網站開發》課程學習總結

選擇器 AR 進行 ron 需要 float 慕課 tex github 地址:http://www.imooc.com/learn/100 這是一個純HTML/CSS的教學視頻,沒有JS。 這個視頻課程的學習我已經接近尾聲了,我大概是17年11月開始觀看學習的吧,斷斷續

手把手實現網站開發

1-1 電商網站開發課程概況 1-2 電商網站開發準備工作 1-3 電商網站首頁開發之頂部結構 1-4 電商網站開發之頂部細化 1-5 電商網站開發之導航欄(上) 1-6 電商網站開發之導航欄(下) 1-7 電商網站開發之Banner部分 1-8 電商網站開發之主列表左側 1-9 電商網站首頁

手把手網路爬蟲1):網易雲音樂歌單

Selenium:是一個強大的網路資料採集工具,其最初是為網站自動化測試而開發的。近幾年,它還被廣泛用於獲取精確的網站快照,因為它們可以直接執行在瀏覽器上。Selenium 庫是一個在WebDriver 上呼叫的API。WebDriver 有點兒像可以載入網站的瀏覽器,但是它也可以像BeautifulSoup

爬蟲手把手網路爬蟲1

介紹 什麼是爬蟲? 先看看百度百科的定義: 簡單的說網路爬蟲(Web crawler)也叫做網路鏟(Web scraper)、網路蜘蛛(Web spider),其行為一般是先“爬”到對應的網頁上,再把需要的資訊“鏟”下來。 為什麼學習爬蟲? 看到這裡,有人就要問了:Google、百度等

手把手網路爬蟲(2):迷你爬蟲架構

語言&環境 有需要Python學習資料的小夥伴嗎?小編整理【一套Python資料、原始碼和PDF】,感興趣者可以加學習群:548377875或者加小編微信:【mmp9972】反正閒著也是閒著呢,不如學點東西啦~~ 語言:帶足彈藥,繼續用Python開路! t

手把手網路爬蟲(8):徹底解決亂碼問題

字元編解碼是爬蟲裡必學的一項知識,在我們的爬蟲生涯中早晚會爬到亂碼的網頁,與其遇到時驚慌失措,不如早學早好,徹底避免亂碼問題。 字元編碼簡介 什麼是字符集 在介紹字元編碼之前,我們先了解下什麼是字符集。 字元(Character)是各種文字和符號的總稱,包括各國家文字、標點

手把手網路爬蟲(5):PhantomJS實戰

有需要Python學習資料的小夥伴嗎?小編整理【一套Python資料、原始碼和PDF】,感興趣者可以加學習群:548377875或者加小編微信:【mmp9972】反正閒著也是閒著呢,不如學點東西啦~~ 如果想看到更多專案,並不能像網易雲音樂那樣點“下一頁”翻頁,而是

手把手基於C++ Winsock的圖片下載的網路爬蟲

先來說一下主要的技術點: 1. 輸入起始網址,使用ssacnf函式解析出主機號和路徑(僅處理http協議網址) 2. 使用socket套接字連線伺服器,,獲取網頁html程式碼(使用http協議的GET請求),然後使用正則表示式解析出圖片url和其他的url。 3. 下載圖

超貼心的,手把手爬蟲

[TOC] > 在[人生苦短我用Python,本文助你快速入門](https://www.cnblogs.com/lbhym/p/14269528.html)這篇文章中,學習了Python的語法知識。現在我們就拿Python做個爬蟲玩玩,如果中途個別API忘了可以回頭看看,別看我,我沒忘!(逃 ##

小程序初體驗:手把手出第一小程序(一)

輸入框 個人 創建 公測 快速 nsh 成功 too 調用 本文筆者將根據quick start中的範例代碼,帶大家簡單地剖析一下小程序的運行方式,並介紹小程序開發中一些通用的特性,帶著大家一步步寫出自己的小程序。 適用對象:前端初學者,對小程序開發感興趣者 tip

大神手把手一個頁面模板引擎,只需20行Javascript代碼!

[1] 表達 最終 strong ice ali 開頭 syntax years 只用20行Javascript代碼就寫出一個頁面模板引擎的大神是AbsurdJS的作者,下面是他分享的全文,轉需。 不知道你有木有聽說過一個基於Javascript的Web頁面預處理器,叫做A

Swing:LookAndFeel 教程第一篇——手把手出自己的 LookAndFeel

畢業 lean 能開 AC alc 我不 cli private 基礎 本文是 LookAndFeel 系列教程的第一篇。 是我在對 Swing 學習摸索中的一些微

CSAPP Lab:Attack Lab——手把手病毒(大誤

png -o spa 字符 寄存器 產生 方法 函數返回 發現 這個實驗要求在5個有不同安全漏洞的代碼上進行攻擊,攻擊分為兩部分: Part 1:Code Injection Attacks(緩沖區溢出攻擊) Part 2:Return-Oriented Programmi

手把手DI_1_DI框架有什麼?

DI框架有什麼? 在上一節:手把手教你寫DI_0_DI是什麼? 我們已經理解DI是什麼 接下來我們就徒手擼一擼,玩個支援建構函式注入的DI出來 首先我們回顧一下 建構函式注入 的程式碼形式, 大概長這模樣: class MovieLister { private IMovieFinder f

手把手DI_1_DI框架有什麽?

這樣的 desc inject var .net 框架 抽象 幹什麽 depend DI框架有什麽? 在上一節:手把手教你寫DI_0_DI是什麽? 我們已經理解DI是什麽 接下來我們就徒手擼一擼,玩個支持構造函數註入的DI出來 首先我們回顧一下 構造函數註入 的代碼形式,

手把手DI_2_小白徒手擼建構函式注入

小白徒手擼建構函式注入 在上一節:手把手教你寫DI_1_DI框架有什麼? 我們已經知道我們要擼哪些東西了 那麼我們開始動工吧,這裡呢,我們找小白同學來表演下 小白同學 :我們先定義一下我們的廣告招聘紙有什麼: public abstract class ServiceDefintion // 小白