精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

高級架構師實戰:如何用最小的代價完成爬蟲需求

安全 應用安全
今天要討論的話題是開發的爬蟲項目有通用性嗎、是否可以花費較小的代價完成一個新的爬蟲需求和在維護運營過程中,是否能夠工具化,構建基于配置化的分布式爬蟲應用等。

[[186419]]

一、緣起

在我工作的多家公司,有眾多的領域,如房產,電商,廣告等領域。盡管業務相差很大,但都涉及到爬蟲領域。開發爬蟲項目多了后,自然而然的會面對一個問題——

  • 這些開發的爬蟲項目有通用性嗎?
  • 有沒有可能花費較小的代價完成一個新的爬蟲需求?
  • 在維護運營過程中,是否能夠工具化,構建基于配置化的分布式爬蟲應用?

這就是是我們今天要討論的話題。

二、項目需求

立項之初,我們從使用的腳度試著提幾個需求。

1. 分布式抓取

由于抓取量可能非常龐大,一臺機器不足以處理百萬以上的抓取任務,因此分布式爬蟲應用是首當其沖要面對并解決的問題。

2. 模塊化,輕量

我們將爬蟲應用分成“應用層,服務層,業務處理層,調度層” 四個腳色。

3. 可管理,可監控

管理監控是一個體系,即配置可管理化,運行實時監控化。在系統正常運行時,可以變更爬蟲的配置,一旦實時監控爬蟲出現異常,可實時修正配置進行干預。所有的一切,均可以通過UI界面進行操作。

4. 通用性,可擴展。

爬蟲業務往往多變,不同領域的爬取需求不盡相同。舉例說,房源抓取包含圖片抓取,小區信息抓取,房源去重等模塊。新聞抓取包括內容抓取,正文提取,信息摘要等相關。

因此,系統需要能夠支持業務擴展需求,可以支持不同的業務使用同一套框架進行應用開發。

三 模塊分解

針對業務需求,我們將系統分解成多個應用模塊。

1. 應用層

應用層是針對管理員,系統維護人員使用。主要分成兩個模塊,系統配置模塊和運營管理模塊。

  • 系統配置模塊:系統配置模塊包含抓取網站管理配置,在線測試等功能。
  • 運營管理模塊:運營管理模塊包含實時抓取量統計,分析,正確率等。甚至包括失敗原因,失敗量。

系統運營人員可以根據運營模塊得到實時的反饋,使用系統配置模塊進行配置修正,在線測試正確后將配置生效,再實時監控新的配置產生的效果。

2. 服務層

服務層是整個系統傳輸的中樞,相當于整個分布式集中的系統總線和數據總線。服務層提供一個http/thrift接口,讀取數據庫,輸出配置信息。

  • 提供網站爬蟲配置接口。從數據庫中實時讀取配置信息,響應業務層的配置請求。
  • 提供業務層輸出寫入接口。接受業務層實時爬取的信息匯總,包括正確數據量,錯誤數據量,以及錯誤原因。
  • 提供實時報表統計分析。響應應用層的運營管理模塊,查詢數據庫,實時提供數據分析報告。

3. 業務處理層

業務處理層是整個爬蟲系統的核心,可分成多臺應用服務器進行處理。業務處理層主要包含解決兩件事情。

  • 如何獲取url
  • 得到url后,如何處理

(1) 如何獲取url

對于爬蟲來說,如何獲取url至關重要。我們將這一過程定義為發現系統。對于發現系統而言,目標為如何發現待抓取網站的詳細url列表,盡可能的發現更全。

a 假設場景 A

我們逛一個電商網站:打開首頁-打開分類頁-可能會有多層分類頁-逐層點擊-直至最小的分類頁面。

打開這個分類頁會發現該分類頁下的所有分頁頁面,一頁一頁往下翻,就能夠獲得該分類頁的所有商品。

b 假設場景 B

我們逛一個汽車網站:打開首頁-找到品牌頁-接著找到車系-最后找到車款頁面。

通過以上場景分析可以得到一個結論,人能非常智能的找到所有待抓取的詳細頁面,即電商的商品,汽車的車款頁面。那么,是否可以通過配置方式來模擬這一過程呢?

請看下圖:

備注如下:

*root_info:

定義發現模塊的入口頁面,如同人打開汽車站的網頁,后續的發現都是起始于這些入口頁。

這里給出的實例是,某汽車網的品牌列表頁,根據“模板化”套用變量的配置,共有100個入口頁。

* steps:

依次遍歷這100個入口頁,分別會執行steps中定義的步驟。機器模擬人的方式進行查看瀏覽。

每個step中,會使用"link_module"定義的類進行邏輯進行處理。

  • 讀取入口頁的html,結合"sub_prefix","sub_suffix"和"select"定義的內容,獲得頁面子區域html。
  • 使用"link_match_method"的方法(含前綴包含,匹配等),抽取子區域的鏈接。
  • 每個鏈接 和"link_pattern"進行匹配,匹配成功的url進入下一步。
  • 每一步得到的url,自動進和地下一步處理,處理邏輯為遞歸上面a-c,直至"last_step"為true為止。

此處,即"last_step"為true中發現的url,即為發現系統最終需要獲取的url列表。發現系統總結,通過配置的方式,結合人類的瀏覽習慣,通過若干步迭代,最終獲取網站的詳細頁url列表。

由于每一步的抽取鏈接規則,以及步數據都是人為定義,因此,可以適配絕大部分網站的發現系統。當然,越復雜的網站發現配置可能更多一些、更為繁雜,但萬變不離其宗。

2. 得到url后,如何處理

前提當然是每個業務的處理各不相同,有抽取頁面屬性功能、有正文提取、有圖片獲取,甚至有和當前系統對接等。

由于業務處理不一致,很自然想到的是通過配置方式,定義職責鏈系統,如同著名框架Netty中的Pipeline設計。在處理過程中,定義一個Context上下文處理類,并且,所有的中間結果都暫緩在這個Context中。

描述比較空洞,還是結合實際案例來看。

得到url后,如何處理

備注如下:

得到一個url后,讀取配置,當url和"site"匹配時,適用當前"site"規則。

*  pipeline定義職責鏈的處理過程

此處的定義為“抓取模塊,Javascript處理模塊,通用解析模塊”。對應的處理如下:

先執行抓取模塊,得到html。緊接著執行Javascript處理模塊,輸入為html,解析html,此處可能是評論,也可能是價格,總之處理的是動態加載項目,緊接著處理“通用解析模塊”

*  "parser_rules"定義的是解析模塊

最終輸出的是kv,在java中是map,python中是dict。即從上一步的html中,找到每一薦的"sizzle",執行"prefix","suffix"即前后綴移除(過濾如同“價格:xxx元,前綴為“價格:",后綴為元)。

對了,sizzle也是一個開源技術,據說以前鼎鼎有名的Jquery也是"sizzle"引擎。Java中可以使用Jsoup解析處理。

怎么知道需要取的"sizzle"內容是什么呢?具體可以結合firebug插件,選中即可得。選中后,結合應用層的管理工具,即可進行測試。

*  “isrequire"

可以看到,配置項中有“isrequire",表示這項內容是否必須。如果必須,且在實際處理中獲取不到,那么在抓取的過程中,就會記錄一個錯誤, 錯誤原因自然是“$key is null"。此外,每一個module都可能出錯,一旦出錯,就沒有必要往后去執行。

因此,在抓取過程中,業務處理層從服務層獲得一批url(默認100個)后,在處理這一百個url結束后,會向服層report,report內容為:

當前任務處理機器,于什么時間處理100個頁面。不同網站成功多少、失敗多少、什么模塊失敗多少,解析模塊什么字段失敗多少。

所有這些信息,均是實時統計,并在運營監控系統中以圖表形示繪制出來,必要時可以發出報警,交由維護人員實時干預。

Q: 提一個問題,新增一個anotherauto.com網站怎么辦?

A: 其實也很簡單,再增加一個配置唄。業務定義pipeline,如果有解析需求,填寫對應的解析項即可。

以上兩個系統,發現系統和處理系統,在我們實際生產中,是通過以下步驟貫穿。

  • 發現系統累計發現待抓取網站的詳細頁,因為是一個累計持續的過程。因此有把握持續無限接近網站的100%頁面。
  • 處理系統通過服務層,每次去取配置信息(可能維護人員在實時修正)及待抓取的列表進行處理。

待抓取的列表根據業務的優先級,分普通隊列及優先級隊列,通過任務調度系統進行統一管理和配置。

4. 調度層

  • 調度層主要是業務系統。
  • 新增一個網站任務調度
  • 網站發現頻率,包括增量發現頻率和全量發現頻率
  • 網站抓取優先級推送至隊列
  • 斷點續抓管理
  • ......

四、系統架構設計

  • 從業務模塊上看:應用層,服務層,業務處理層,調度層
  • 從功能系統上看:發現系統,抓取系統, 配置系統,監控系統
  • 從擴展性上看:自定義職責鏈,自定義屬性提取
  • 從實時性上看:實時抓取,實時配置生效,實時監控,實時測試
  • 從系統架構上看:分布式架構,服務層主從切換設計,輕量(僅依賴于隊列,數據庫,java)

五、圖例

如何用最小的代價完成爬蟲需求圖例

如何用最小的代價完成爬蟲需求圖例

如何用最小的代價完成爬蟲需求圖例

如何用最小的代價完成爬蟲需求圖例

如何用最小的代價完成爬蟲需求圖例

【本文是51CTO專欄機構“豈安科技”的原創文章,轉載請通過微信公眾號(bigsec)聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2018-03-12 15:21:20

2012-08-04 16:02:00

架構師

2011-04-07 16:20:24

軟件架構師架構師架構

2017-05-31 14:55:19

2012-06-17 12:58:04

架構師架構

2021-12-28 07:20:43

架構師技術架構

2010-02-06 15:14:36

ibmdw架構師

2020-08-24 08:50:12

架構師TL技術

2020-05-15 08:38:33

架構師高級開發互聯網

2015-08-12 10:10:44

2010-06-03 18:43:00

Hadoop

2009-12-18 10:22:50

Ray Ozzie架構師

2022-04-28 13:08:51

架構師軟件

2022-03-04 12:01:06

架構師互聯網業務

2020-06-28 08:34:07

架構師阿里軟件

2012-06-08 10:12:08

架構師

2021-12-29 06:58:41

架構師數據應用

2012-06-20 09:14:07

系統架構運維

2012-08-28 13:34:28

架構師軟件架構架構文檔

2012-05-15 10:23:35

架構師運維安全
點贊
收藏

51CTO技術棧公眾號

人妻精品无码一区二区| 在线看片中文字幕| 91超碰在线免费| 91小视频免费看| 国产精品久久久久久久久久三级 | 精品深夜av无码一区二区老年| xxxxxhd亚洲人hd| 精品久久久免费| 天堂√在线观看一区二区| 国产欧美日韩成人| 国产精品视频| 美女黄色丝袜一区| 中文字幕一二三四区| www.久久草.com| 欧美日韩午夜激情| 强开小嫩苞一区二区三区网站| 人妻精品一区一区三区蜜桃91| 免费高清视频精品| 68精品国产免费久久久久久婷婷| 中文字幕精品亚洲| 精品亚洲免a| 欧美精品视频www在线观看| 黄色一级视频在线播放| 9色在线观看| 99久久综合国产精品| 国产在线精品自拍| 黄色片网站在线免费观看| 欧美在线黄色| 中文字幕在线日韩 | 国产深夜男女无套内射| 黄色成人在线观看| 久久蜜桃av一区二区天堂 | 亚洲人成人一区二区在线观看 | 久久不卡国产精品一区二区| 日韩欧美国产午夜精品| www.com操| 日韩伦理精品| 亚洲成a人片在线观看中文| 一区二区三区在线视频111| 日本一本草久在线中文| 成人午夜碰碰视频| 亚洲最大的网站| 国产精品九九九九| 久久成人免费网站| 国产精品青青在线观看爽香蕉| 国产毛片aaa| 日韩一级欧洲| 97超碰色婷婷| 亚洲伊人成人网| 国产欧美午夜| 91精品国产乱码久久久久久蜜臀| 国产一级av毛片| 欧美人成在线| 欧美激情亚洲自拍| 精品少妇一二三区| 亚洲人成久久| 韩国美女主播一区| 97超碰人人干| 久久一区中文字幕| 国产精品高潮呻吟久久av无限| 亚洲欧美偷拍视频| 久久这里有精品15一区二区三区| 国产91在线视频| 艳妇乳肉豪妇荡乳av无码福利| 久久高清国产| 国产精品久久久久久久av电影| 在线免费观看国产精品| 久久精品国产亚洲aⅴ| 成人欧美一区二区三区在线湿哒哒| 97人妻精品一区二区三区动漫| 精品一区中文字幕| 亚洲综合自拍一区| 人妻妺妺窝人体色www聚色窝| 不卡欧美aaaaa| 蜜桃臀一区二区三区| 电影av在线| 亚洲视频网在线直播| 亚洲大片精品永久免费| 国产成人一区三区| 亚洲系列在线观看| 国产成人在线影院| 久久99精品久久久久久三级 | 国产精品黄色片| 91.成人天堂一区| 亚洲国产精品第一页| 窝窝社区一区二区| 日韩中文在线观看| 久久精品第一页| 葵司免费一区二区三区四区五区| 国产免费一区二区三区在线能观看| 国产婷婷在线视频| 91视视频在线观看入口直接观看www | 国产精品成人av| 欧美国产日韩精品| 国产suv精品一区二区33| 精品影视av免费| 精品一区国产| 精品美女在线观看视频在线观看 | 中文字幕在线观看高清| 国产高清精品网站| 日本精品一区| 丁香花在线影院| 欧美性xxxxxxxx| 天堂www中文在线资源| 欧洲grand老妇人| 欧美激情中文网| 中文字幕精品在线观看| av在线综合网| 伊人网在线免费| 欧美韩国亚洲| 亚洲国产小视频在线观看| 亚洲欧美卡通动漫| 美女精品在线| 国产欧美日本在线| 里番在线观看网站| 色综合一个色综合亚洲| 乱码一区二区三区| 天天做天天爱天天综合网| 国产成人av网址| 十八禁一区二区三区| 亚洲视频在线一区| 91蝌蚪视频在线观看| 日韩av网站在线免费观看| 久久av在线看| 一卡二卡在线观看| 久久久www免费人成精品| 久草视频国产在线| 日韩精品一区二区三区免费视频| 色吧影院999| 日韩 国产 欧美| 99久久精品免费| 男女日批视频在线观看| 天堂av一区| 久久精品视频亚洲| 伊人网免费视频| 日本一区二区高清| 日韩 欧美 高清| 8848成人影院| 久久av在线看| 午夜久久久久久久久久| 亚洲人成网站精品片在线观看| 免费一区二区三区在线观看| 国产日产精品一区二区三区四区的观看方式| 欧美激情亚洲综合一区| 亚洲女同志亚洲女同女播放| 亚洲精品福利视频网站| 麻豆精品国产传媒| 黑丝一区二区| 国产91精品入口17c| 午夜成年人在线免费视频| 91精品一区二区三区久久久久久 | 亚洲一区二区三区四区在线观看| 久久精品国产99久久99久久久| 久久精品高清| 91久久精品国产91久久| 国产黄大片在线观看画质优化| 欧美日产在线观看| 一区二区国产精品精华液| 国产精品一区二区在线观看不卡| 三年中文高清在线观看第6集| 亚洲三级电影| 欧美大奶子在线| 免费看国产片在线观看| 大桥未久av一区二区三区| 黄色正能量网站| 日韩成人免费电影| 伊人久久大香线蕉精品| 免费看一区二区三区| 欧美激情一区二区三区高清视频| 欧美一级做性受免费大片免费| 婷婷综合另类小说色区| 手机免费看av| 久久99精品国产.久久久久久| 日本特级黄色大片| 国产精品zjzjzj在线观看| 欧美一区二粉嫩精品国产一线天| 成年人视频免费在线观看| 欧美精品久久一区二区三区| 九九热视频精品| 久久亚洲二区三区| av在线网址导航| 激情综合电影网| 欧美在线视频二区| 国产va免费精品观看精品| 久久久欧美精品| 国产尤物视频在线| 欧美一级淫片007| 99热在线观看免费精品| 国产精品色一区二区三区| 精产国品一区二区三区| 男人的天堂亚洲| 韩国黄色一级大片| 五月综合久久| 91影视免费在线观看| 正在播放日韩精品| 久久深夜福利免费观看| 亚洲av成人无码久久精品老人 | 性欧美成人播放77777| 久久国产剧场电影| 欧美 丝袜 自拍 制服 另类| 欧美电影免费观看高清| 国产另类自拍| 日本一区二区中文字幕| 456国产精品| av在线免费观看网址| 国产丝袜一区二区| 成人黄色在线观看视频| 欧洲精品中文字幕| 国产成人精品一区二三区| 亚洲人成在线观看一区二区| 欧美成人国产精品一区二区| 国产成人aaa| 污污网站在线观看视频| 翔田千里一区二区| 国产精品va在线观看无码| 日韩在线视屏| 日本一区二区在线视频| 狼人精品一区二区三区在线| 91在线免费看网站| 99久久婷婷国产综合精品首页 | 国产一区二区动漫| 姝姝窝人体www聚色窝| 日韩一区二区三区三四区视频在线观看 | 国产一区视频在线播放| 日韩电影免费观看高清完整版| 欧美激情在线有限公司| 中文在线观看免费| zzjj国产精品一区二区| av资源在线观看免费高清| 国产视频丨精品|在线观看| 欧美 日韩 国产 在线| 日韩精品一区国产麻豆| 国产偷拍一区二区| 91麻豆精品国产91久久久久久 | 国产麻豆精品在线| 亚洲久久中文字幕| 秋霞午夜av一区二区三区| 成人小视频在线看| 亚洲中午字幕| 亚洲美免无码中文字幕在线 | 亚洲色图在线播放| 九九热久久免费视频| 国产视频一二三四区| 亚洲丝袜制服诱惑| 亚洲精品国产精品乱码在线观看| 中文字幕免费观看一区| 成年人在线免费看片| 国产日韩欧美精品电影三级在线| 丰腴饱满的极品熟妇| 国产日韩欧美激情| 中文字幕第69页| 综合网在线视频| 国产波霸爆乳一区二区| 一区二区不卡在线播放 | 国产精品久久久久一区二区| 久久久成人av毛片免费观看| 国产精品成人播放| 成人不卡视频| 91日韩在线播放| 91亚洲无吗| 精品一区日韩成人| 精品国产一区二区三区香蕉沈先生| 日韩欧美亚洲在线| 97人人精品| 欧美国产视频一区| 999亚洲国产精| 免费黄色特级片| 奇米亚洲午夜久久精品| 中文 日韩 欧美| 99免费精品在线观看| 免费黄在线观看| 亚洲欧美日韩一区二区| 国产无遮挡裸体免费视频| 欧美日韩一区二区三区在线免费观看| 日韩一级在线视频| 欧美人妇做爰xxxⅹ性高电影| 国产成人av免费看| 日韩精品免费在线| 尤物网址在线观看| 久久777国产线看观看精品| av资源新版天堂在线| 国产精品成人一区二区| 国产精品日本一区二区不卡视频| 国产精品视频入口| 精品国产精品| 国产精品自拍合集| 日韩福利电影在线观看| 亚洲制服在线观看| www久久久久| 中文字幕在线2021| 日本国产一区二区| 国产国语亲子伦亲子| 亚洲美腿欧美激情另类| 成人午夜在线影视| 日本欧美在线视频| 蜜桃在线一区| 一区二区三区美女视频| 国产熟妇久久777777| 一区二区三区在线看| 激情视频网站在线观看| 日韩欧美高清一区| yw在线观看| 97人人爽人人喊人人模波多| 色诱色偷偷久久综合| 久久国产精品一区二区三区四区| 99久久99热这里只有精品| 免费在线激情视频| 国产精品1区二区.| 日本视频在线免费| 一本久久综合亚洲鲁鲁五月天| 国内精品久久久久久久久久| 一区二区三区四区在线观看视频 | 日韩精品久久久久久久电影99爱| av免费看网址| 国产精品影视天天线| 成年人看的免费视频| 色综合久久六月婷婷中文字幕| 性做久久久久久久| 久久久国产精品免费| 国产极品一区| 日韩在线导航| 美女国产一区| 中文字幕高清视频| 亚洲成人一区在线| 午夜久久久久久久久久| 久久久999精品视频| 欧美成人xxxx| 色综合久久久久久久久五月| 亚洲欧美大片| 中文字幕 亚洲一区| 亚洲国产精品久久不卡毛片| 国产情侣一区二区| 精品国产一区二区三区久久| 91tv亚洲精品香蕉国产一区| 欧美日韩视频在线一区二区观看视频| 亚洲大片av| 涩视频在线观看| 一区二区三区四区五区视频在线观看 | 男女在线视频| 高清国语自产拍免费一区二区三区| 亚洲精品a级片| 亚洲精品在线网址| 亚洲男人电影天堂| 国产哺乳奶水91在线播放| 欧美成人精品在线播放| 国产亚洲高清在线观看| 欧美三级午夜理伦三级老人| 国产一区二区三区视频在线播放| 乱老熟女一区二区三区| 在线播放91灌醉迷j高跟美女| 麻豆影视国产在线观看| 成人黄色片网站| 亚洲五月综合| 大尺度在线观看| 亚洲mv在线观看| 三级在线电影| 国产精品久久久久久久久粉嫩av| 日韩毛片视频| 亚洲AV无码久久精品国产一区| 樱花影视一区二区| 黄色a在线观看| 欧美重口另类videos人妖| 国产一区二区观看| 日本中文字幕观看| 一区二区国产视频| 亚洲三级中文字幕| 国产精品久久久久国产a级| 久久精品亚洲欧美日韩精品中文字幕| 亚洲高清在线不卡| 午夜精品久久久久久久久| 欧美成人综合在线| 国产日韩中文在线| 亚洲午夜91| 日韩精品无码一区二区三区久久久| 欧美亚洲动漫另类| av文字幕在线观看| 国产一区二区高清不卡| 日韩国产在线一| 国产免费无码一区二区视频| 亚洲国产精品人人爽夜夜爽| 亚洲精品一级二级| 路边理发店露脸熟妇泻火| 99久久久精品| 一卡二卡在线视频| 45www国产精品网站| 亚洲91中文字幕无线码三区| 日本护士做爰视频| 欧美喷潮久久久xxxxx| 超碰在线最新网址| 天天综合色天天综合色hd| 国产成人日日夜夜| 一级特黄免费视频| 欧美激情综合亚洲一二区| 狠狠色丁香婷婷综合影院| 久久久精品视频国产| 色婷婷av一区二区三区软件 | 国产欧美亚洲精品| 日韩视频精品在线观看| 中文字幕乱码av| 国产视频在线一区二区|