翻舊賬,自己參加工作一年時寫的設計文檔

來源:互聯網
上載者:User

看著曾經自己寫的文檔,一絲笑意湧過心頭。一分是為當時稚嫩的設計,一分是為當時入神入微,矜矜業業的態度。

這個設計是一個系統的資料抓取部分的設計,如果現在讓我設計,肯定完全是另一個樣。此系統早已不再運行,所以可以放心的拿出來,僅博一笑。

XXXX網站監控——詳細資料爬蟲設計

版本:V0.1

作者:XX

時間:2010-9-13

需求

根據視頻title及頁面URL,到具體網頁中抓取視頻各項屬性及資訊。

 

功能需求點

概述

輸入

提供webservice介面供主控調用,非同步啟動爬蟲任務。

輸出

1.       在正常接收、啟動任務後立即給主控返回接收成功。

2.       在完成任務/任務失敗後調用主控提供的回調介面。

3.       抓取成功後,將抓取資料儲存至資料庫。

錯誤處理

抓取異常情況下,應該將錯誤原因彙報給主控,並記錄日誌。

並發性需求

模組支援多線程並發調用。

 

 

實際情況調研

根據各XXXX網站HTML源碼分析,在介面/結構上基本相同,但在不同網站、或者同一網站部同視頻間存在若干細微的“版本”差異,所以需要在開發過程中,制定良好的爬取方案以適應各網站視頻頁面上的變化。

介面設計

使用WebService介面,SOAP協議。

 

l  版本

http://xxxxx/netvideo/bokecc/vinfoant/version?wsdl

INTPUT:NULL

 

OUTPUT:目前的版本

如 0.1

 

 

 

l  爬取

http://xxxxx/netvideo/bokecc/vinfoant/run?wsdl

 

INPUT:


參數

描述

類型

備忘

dbip

串連資料庫IP

String

 

dbport

串連資料庫連接埠

Integer

 

dbname

資料庫名

String

 

dbuser

資料庫使用者名稱

String

 

dbpw

資料庫密碼

String

 

videoId

需爬取的視頻id

Integer

 

sessionId

任務id

Integer

 

timeout

逾時時間

Integer

 

callbackAddr

回調地址

String

任務完成之後調用的地址

 

OUTPUT:

Responese(WebService調用同步返回):

Id

描述

0

接受成功

-1

主控身份錯誤,禁止進入

-2

資料庫連接失敗

 

Callback(WebService調用非同步返回):


參數

描述

類型

備忘

sessionId

任務id

Integer

 

status

任務完成狀態

Integer

0 成功

-1 網路情況異常

-2 Regex匹配錯誤

 

 

 

 

 

 

 

 

 


 

流程設計

1.  爬取任務整體流程

【無法貼圖】

 

2.  內容匹配流程

【無法貼圖】

 

日誌設計

日誌條目

層級

記錄資訊

WebService介面被調用

Info

調用方IP及各介面參數

主控身份校正失敗

Warn

調用方IP

開始建立/更新資料庫連接池

Info

資料庫參數

資料庫連接失敗

Error,Notify

失敗原因

資料庫連接成功

Info

 

開始啟動爬蟲任務

Debug

 

開始抓取網頁

Info

URL

一次網頁抓取逾時

Warn

當前重試次數

一次網頁抓取異常

Warn

異常原因

重試範圍內網頁抓取失敗

Error,Notify

 

網頁抓取成功

Debug

 

開始內容匹配

Info

 

Regex匹配失敗

Error,Notify

失敗欄位、失敗原因

Regex匹配成功

Debug

 

開始更新資料庫

Info

 

SQL操作

Debug

SQL語句

更新資料庫完成

Debug

 

寫資料庫異常

Error,Notify

當前執行的SQL語句,異常原因

任務成功

Info

 

技術選型

開發平台:  windowsXP

部署平台:  跨平台

程式設計語言:python2.5

IDE+plug-in:MyEclipse 7.0 + pydev

 

具體使用的python技術:

功能

技術選型

網頁抓取

urllib2

內容解析,正則表達

re

WebService

ZSI2.0

SOAP協議

SOAPpy(ZSI依賴)

XML

pyXML(ZSI依賴)

Web伺服器

ZSI內建SOAP SERVER 或Apache

發布、部署

Windows平台:py2exe

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.