2017年12月12日 星期二

如何使用shell script到工會網站下載廠商名錄


首先到工會網站找到可以搜尋廠商名錄的地方
用全部搜尋的方式把所有的廠商列表出來
他會自動分頁沒關係
找到url query string的規則,或許是加上&page=頁數
就可以列出該頁的搜尋結果


#!/bin/sh
for ((i=131 ; i<324 ; i++)); do
wget -r --accept "CompanyDetail*" "http://www.teemab2b.com.tw/FindPdtCmp.aspx?key=&kind=company&pro=company%2ccompanyKeyword&culture=zh-TW&page=$i"
done

然後用wget的方式
利用不同的query string
把網頁一頁頁抓下來
只要搜尋結果的頁面
因此可以用「白名單」的方式限制抓取對象

#!/bin/bash

#`ls CompanyDetail*`
for i in CompanyDetail*; do
  #echo $i
  name="$(grep ContentPlaceHolder_Main_Label_companyName "$i" | sed 's/^.*">//g' | sed 's/<.*$//g')"
  tel="$(grep ContentPlaceHolder_Main_Label_CmpTel "$i" | sed 's/^.*">//g' | sed 's/<.*$//g')"
  url="$(grep ContentPlaceHolder_Main_HyperLink_url "$i" | sed 's/^.*">//g' | sed 's/<.*$//g')"
  addr="$(grep ContentPlaceHolder_Main_Label_Addr_Cht "$i" | sed 's/^.*">//g' | sed 's/<.*$//g')"
  echo -e $name '\t' $tel '\t' $addr '\t' $url
done

最後將結果存成tab分開的csv
對mac的excel來說這樣的csv匯入會讓中文變亂碼
因此還要用「文字編輯」打開這個csv
再另存成utf-16編碼的文字檔
這樣就可以將結果以excel來呈現了

2017年11月21日 星期二

視覺暫留影像產生器

從tiny85接出六個LED 以掃描方式顯示
使用UNO設定為arduino as ISP 作為tiny85的燒錄器
下載attiny的板子管理員
https://github.com/damellis/attiny

在arduino as ISP的模式下
只要目標板子選定例如這裡是tiny85
就可以執行一般的程式上傳功能
如果要設定tiny85的運作速度例如選擇internal 8 MHz
則需要執行「燒錄Bootloader」的功能才能將tiny85的設定寫入

 將固定圖案資料陣列依序以一行一行的方式顯示出來

接著預計使用tiny85直上USB的方式進行開發
這樣就是一套可玩可學的套件了

2017年6月25日 星期日

三種運動方式的機器人可程式平台

使用linux架構的單板電腦
將單板電腦設置為無線網路基地台
內部架設網頁伺服器
將Blockly置入單板電腦中

當單板電腦電腦啟動後
使用者端使用網頁瀏覽器連上單板電腦
客製化的Blockly除了提供程式設計的功能
也提供單板電腦上的周邊控制功能
一旦Blockly程式設計完成
即可上傳至單板電腦
Blockly本身可以客製化轉譯程式
因此可以上傳轉譯後的程式到單板電腦
如此一來就做到免轉換直接上傳程式的功能

單板電腦的部份還會加入感測器
目前規劃有
光感測
電子陀螺儀
電子羅盤
溫度
濕度
氣壓
等常見感測


機構平台的部份使用田宮的馬達齒輪組
以及相關機構零件
例如輪胎、履帶等

藉由運動物件的替換
目前規劃有足型、輪胎型以及履帶型三種運動方式

整體機構分為四大部:
1.運動部
2.下底盤
3.上底盤
4.單板電腦