2010年2月17日 星期三

[程式] web crawler

[ 目標 ]
  這次目標是要擷取人家網站的中文字的部首、筆劃、讀音資料。




[ 軟體 ]
crawler  (後來我沒用這個)
>  自製程式 ( PHP+ curl模組 )


[ 功能區塊 ]
> 抓取網頁
由於網站有做簡單的防禦機制(註一),這部份所花得時間比我想像的還多。

> 解析文字 (部首、相關描述)
尋找出規則,輕鬆解決
而相關描述部份還需要額外去除html tags

> Database儲存格式
主體用一個table來紀錄文字相關資訊,其中...弄了幾個欄位作為抓取過程的暫存資料



[ 程式流程 ]
> 先瞭解網頁架構,並且擷取幾個代表性的網頁下來參考
> 根據網頁架構,決定三段式的擷取。
1. 讀取部首主頁面
2. 讀取各部首所包含的文字
3. 讀取各文字相關的說明

> 觀察可能會收納哪些資料,建立table
> 撰寫程式
> 根據結果反應調整....  



註一:
  對象網站的防禦機制為...  首頁會對這次的拜訪設立一個入場卷(random code, 5 char),接下來就根據這個入場卷來訪問這個網站

註二:
  訪問網站所得到的連結,竟然無法直接使用,需額外呼叫html_entity_decode來處理連結
註三:
  總共花了兩天,大約12hr

沒有留言: