蘇寧百萬(wàn)級(jí)商品爬取 簡(jiǎn)述

代碼下載鏈接 蘇寧百萬(wàn)級(jí)商品爬蟲

目錄

  1. 思路講解 類別爬取
  2. 思路講解 類別頁(yè)數(shù)爬取
  3. 商品爬取
    3.1 思路講解 商品爬取1
    3.2 思路講解 商品爬取2
    3.3 代碼講解 商品爬取
  4. 索引講解
    4.1 代碼講解 索引建立
    4.2 代碼講解 索引查詢

聲明

本系列文章+代碼案例時(shí)對(duì)爬蟲的內(nèi)容學(xué)習(xí)概括生年,希望更多的人知道如何使用c#進(jìn)行簡(jiǎn)單爬蟲項(xiàng)目的開發(fā)闽铐,并不存在惡意工具部分電商網(wǎng)站的觀念。分享的的代碼中對(duì)網(wǎng)頁(yè)爬取都做了休眠等待(200-500)毫秒的限制堤魁,希望大家不要惡意使用蜜暑。

學(xué)習(xí)回顧

首先簡(jiǎn)單概述一下自己的學(xué)習(xí)計(jì)劃铐姚,在爬蟲這個(gè)模塊的學(xué)習(xí)過程中「睾矗可以了解到很多的知識(shí)隐绵,例如

  1. Xpath語(yǔ)法(網(wǎng)頁(yè)解析),css(網(wǎng)頁(yè)解析)拙毫,正則表達(dá)式(文本處理或網(wǎng)頁(yè)解析)
  2. .net 第三方爬蟲類庫(kù) html agility pack +第三方爬蟲框架(用的相對(duì)較少) 學(xué)習(xí)的時(shí)候還是趨向于寫一些底層的東西
  3. 異步多線程依许,主要用在蘇寧百萬(wàn)數(shù)據(jù)爬取時(shí)。多線程爬取缀蹄,多線程存儲(chǔ)峭跳。
  4. Lucene索引和分詞 簡(jiǎn)單使用膘婶,并未深入。主要時(shí)對(duì)爬取的百萬(wàn)數(shù)據(jù)建立索引庫(kù)蛀醉,做一個(gè)簡(jiǎn)單的查詢悬襟。

運(yùn)行環(huán)境+技術(shù)選型

  • ide 使用 vs 2017
  • 數(shù)據(jù)庫(kù) sqlserver 2008r2 或mysql
  • 語(yǔ)言 c#

一、開發(fā)預(yù)估周期和安排

1拯刁、開發(fā)周期

因?yàn)楣ぷ鲿r(shí)無(wú)聊想到的東西脊岳,所以在不耽誤工作的情況下,編碼周期為1個(gè)禮拜垛玻。

2割捅、程序模塊抽象描述

數(shù)據(jù)庫(kù)相關(guān)
  • 實(shí)體
  • 數(shù)據(jù)庫(kù)訪問層
  • 業(yè)務(wù)邏輯層
網(wǎng)頁(yè)爬取
  • 分析器(包含取數(shù)據(jù)功能)
  • 服務(wù)層(取分析器數(shù)據(jù),調(diào)用業(yè)務(wù)邏輯層方法帚桩,將數(shù)據(jù)入庫(kù))
索引
  • 分詞幫助(盤古分詞器)
  • 索引幫助
界面描述

采用winform程序的形式亿驾,分首頁(yè)+4個(gè)子頁(yè)面
首頁(yè)是對(duì)主要功能的概述,添加4個(gè)按鈕账嚎,每個(gè)按鈕觸發(fā)新的頁(yè)面添忘,按鈕分別為:

  • 數(shù)據(jù)初始化(進(jìn)行數(shù)據(jù)初始化功能)
  • 商品類別(對(duì)商品類別的爬取和更新)
  • 商品內(nèi)容(對(duì)商品內(nèi)容的爬取和更新)
  • 建立索引(使用Lucene+分詞器建立索引)
  • 查詢產(chǎn)品

三烟零、開發(fā)中可能遇到的問題

  1. 因?yàn)橹岸际菍?duì)單頁(yè)面的爬取土砂,或者是對(duì)某些分頁(yè)數(shù)據(jù)爬取龙亲,都只是一個(gè)小demo。所以在設(shè)計(jì)程序結(jié)構(gòu)的過程中一定會(huì)存在問題恳不。當(dāng)我已經(jīng)完成項(xiàng)目后檩小,重新回顧自己的代碼也覺得好多地方存在可以修改的地方。
  2. 對(duì)很多技術(shù)的生疏烟勋,異步多線程在工作中不長(zhǎng)使用规求,沒有踩過坑,所以一定會(huì)跌的很慘卵惦。xpath阻肿,正則這些語(yǔ)法的遺忘
  3. 界面設(shè)計(jì)可能會(huì)很丑,不美觀

四沮尿、功能設(shè)計(jì)圖

在新建解決方案后丛塌,我首先建立一個(gè)demo項(xiàng)目,這個(gè)項(xiàng)目只是用來(lái)做效果圖畜疾,用來(lái)讓自己對(duì)所做的程序有個(gè)大概的布局赴邻。
首頁(yè)設(shè)計(jì)圖:
首頁(yè)是對(duì)功能的詳細(xì)抽象描述,所以定義三個(gè)模塊啡捶,每個(gè)模塊再放置自己的內(nèi)容姥敛。
“初始化數(shù)據(jù)”只是一個(gè)按鈕,點(diǎn)擊彈出提示框瞎暑,點(diǎn)擊確認(rèn)清理所有產(chǎn)品數(shù)據(jù)


首頁(yè).png
商品類別設(shè)計(jì)圖.png
商品內(nèi)容設(shè)計(jì)圖.png
建立索引設(shè)計(jì)圖.png
查詢產(chǎn)品設(shè)計(jì)圖.png

五彤敛、程序準(zhǔn)備:

對(duì)商品進(jìn)行爬取与帆,首先要知道有多少類別,不同類別數(shù)據(jù)性展示是否為不同形式墨榄。如果為不同形式玄糟,那就要區(qū)分爬取,如果相同渠概,那就更加方便茶凳。
產(chǎn)品有那么多屬性嫂拴,取哪些字段播揪,百萬(wàn)的數(shù)據(jù)量應(yīng)該如何存儲(chǔ),同樣的百萬(wàn)數(shù)量應(yīng)該如果查詢筒狠,這都是在前期應(yīng)該考慮好的問題猪狈。不然等開始編碼再修改就很麻煩

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辩恼,隨后出現(xiàn)的幾起案子雇庙,更是在濱河造成了極大的恐慌,老刑警劉巖灶伊,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疆前,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡聘萨,警方通過查閱死者的電腦和手機(jī)竹椒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)米辐,“玉大人胸完,你說(shuō)我怎么就攤上這事∏讨” “怎么了赊窥?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)狸页。 經(jīng)常有香客問我锨能,道長(zhǎng),這世上最難降的妖魔是什么芍耘? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任址遇,我火速辦了婚禮,結(jié)果婚禮上齿穗,老公的妹妹穿的比我還像新娘傲隶。我一直安慰自己,他們只是感情好窃页,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布跺株。 她就那樣靜靜地躺著复濒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪乒省。 梳的紋絲不亂的頭發(fā)上巧颈,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音袖扛,去河邊找鬼砸泛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蛆封,可吹牛的內(nèi)容都是我干的唇礁。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼惨篱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼盏筐!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起砸讳,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤琢融,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后簿寂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體漾抬,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年常遂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纳令。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡烈钞,死狀恐怖泊碑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情毯欣,我是刑警寧澤馒过,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站酗钞,受9級(jí)特大地震影響腹忽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜砚作,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一窘奏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧葫录,春花似錦着裹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)摔竿。三九已至,卻和暖如春少孝,著一層夾襖步出監(jiān)牢的瞬間继低,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工稍走, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留袁翁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓婿脸,卻偏偏與公主長(zhǎng)得像粱胜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子盖淡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 接下去進(jìn)入代碼的模塊,首先我們分析一下如何實(shí)現(xiàn)代碼我們擁有一張類別表褪迟,類別表中記錄了 類別名稱,編碼答憔,地址味赃,該類別...
    HapplyFox閱讀 1,086評(píng)論 2 5
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,863評(píng)論 25 707
  • 恭喜你點(diǎn)開了文章,說(shuō)明你是個(gè)不隨大流的人~~ 最近我和老公也在追這部國(guó)民熱劇《人民的名義》虐拓,老公昨晚回...
    一地麥穗閱讀 340評(píng)論 0 3
  • 水到末日降臨 第一次發(fā)帖字?jǐn)?shù)過五千(加精版) 看完作者的小說(shuō)心俗,我的心情竟是久久不能平復(fù),正如老子所云:大音希聲蓉驹,大...
    道小塵閱讀 184評(píng)論 0 0
  • 選擇安全的平臺(tái)比選擇高收益的平臺(tái)要重要的多城榛! 一:學(xué)習(xí)金融知識(shí)打好理財(cái)基礎(chǔ) 究竟投資哪個(gè)平臺(tái)才是最靠譜呢?對(duì)于金融...
    dsgfsddsfs閱讀 102評(píng)論 0 0