Upload
yihung-lee
View
227
Download
1
Embed Size (px)
Citation preview
Introduction to vegetable crawler for Taiwan
Howardsun2014/03/13
114年3月13⽇日星期四
Outline
緣起程式內容發展現況
2
214年3月13⽇日星期四
緣起
颱⾵風、乾旱、傳統三節的⽇日⼦子前後,蔬菜⽔水果⾁肉類常飆漲「你們放假回家我很⾼高興,我特地去菜市場採買,不過最近⾼高麗菜⼀一顆就要200,實在買不下去,所以我只買半顆」
3
314年3月13⽇日星期四
緣起
農產品交易⾏行情站操作步驟多第⼀一次使⽤用⽥田園好幫⼿手App查詢產地價格要先註冊帳號?!只是查個價格,居然要先註冊?
4
414年3月13⽇日星期四
hackpad5
514年3月13⽇日星期四
蔬菜......等等交易資料下載處
data.g0v.tw/questions/244
6
614年3月13⽇日星期四
程式內容
開源專案 agri_data_crawler_AT_github
抓官⽅方蔬菜、⽔水果、花卉資料指定時間區間
驗證資料欄位與格式轉換CSV和JSON格式的資料
7
714年3月13⽇日星期四
抓官⽅方資料準備物種清單 at data_format_at_every_site/txt_at_amis_{vegetable | fruit | flowers}.txt
蔬菜, 例如:花椰菜, FB
⽔水果, 例如:鳳梨, ⾦金鑽鳳梨, B2
花卉, 例如:康乃馨, FA
請以專案檔案格式為主
8
814年3月13⽇日星期四
抓官⽅方資料讀取物種清單從網⾴頁原始碼找⺫⽬目標表單網址蔬菜 http://amis.afa.gov.tw/v-asp/v101r.asp
⽔水果 http://amis.afa.gov.tw/t-asp/v103r.asp
花卉 http://amis.afa.gov.tw/l-asp/v101r.asp
9
914年3月13⽇日星期四
⺫⽬目標網站10
1014年3月13⽇日星期四
下命令囉
ruby my_vegetable_crawler.rb <StartDate> <EndDate> <OutputFile> [vegetable | fruit | flowers]
練習⻄西元轉⺠民國紀年練習設計具實質意義的錯誤訊息
11
1114年3月13⽇日星期四
檢查⽇日期參數12
1214年3月13⽇日星期四
設定查詢機器⼈人參數13
1314年3月13⽇日星期四
發出與接收網站回覆14
1414年3月13⽇日星期四
驗證資料欄位與格式
花費最多的時間處理蔬菜、⽔水果和花卉三種欄位數量與格式之差異
花卉有天氣資料, 蔬菜與⽔水果則無系統早期⼀一些資料有遺失欄位
15
1514年3月13⽇日星期四
過濾最⾼高階層的網⾴頁標籤16
1614年3月13⽇日星期四
驗證⽔水果的天氣欄位17
1714年3月13⽇日星期四
檢驗天氣資料的註解18
1814年3月13⽇日星期四
轉換成CSV格式19
1914年3月13⽇日星期四
CSV轉換成JSON格式
⾃自⼰己寫⼀一個符合需求的轉換器順便了解JSON格式
[{ Obj1 }, { Obj2 }, ...... ]
最近才修好先前產⽣生的JSON格式bug
my_format_csv_to_json.rb
20
2014年3月13⽇日星期四
收獲
⾮非常愛寫註解,防⽌止⾃自⼰己忘記當時處理Bug程式碼之⽤用途你的Regular expression會變超強耐⼼心也變好了
21
2114年3月13⽇日星期四
發展現況
為了讓⾃自⼰己省⼒力抓整月份資料,再寫了automate_operator script,⾃自動處理抓資料和轉換成JSON檔最近正依據issue重新調整CSV的格式,依照分析需求⽅方便匯⼊入資料庫
22
2214年3月13⽇日星期四
成果展⽰示
2314年3月13⽇日星期四
CSV格式檔案24
2414年3月13⽇日星期四
JSON格式檔案25
2514年3月13⽇日星期四
Q&A
2614年3月13⽇日星期四