--- title: 15.Python 網路連線程式、公開資料串接 By 彭彭 tags: 學習, 紀錄 --- # 15.Python 網路連線程式、公開資料串接 By 彭彭 {%youtube sUzR3QVBKIo %} ## Python 網路連線、公開資料串接 ### 網路連線 * 載入模組 import urllib.request(別名) * 下載特定網址資料 import urllib.request as request with request.urlopen(網址) as response: data=response.read() print(data) ### 公開資料 * 適合的資料來源: [臺北市資料大平臺](https://data.taipei/#/) * 確認資料格式:JSON、CSV、或其他格式 > 台北市政府的公開資料格式為Json * 解讀JSON格式 使用內建的JSON模組 ## Practice ### 網路連線 * 示範取得台大網站原始碼(HTML、CSS、JS) import urllib.request as request (把urllib.request取別名為request ) src="https//www.ntu.edu.tw/" with.request.urlopen(src) as response: data=response.read().decode("utf-8"#把資料讀去下來、用UTF-8解碼 中文字才可被處理 print(data) #再把資料印出來 >結果詳見影片5:14秒 ## 串接、擷取公開資料 * 於台北市政府公開資料 取得內科廠商名錄 下載API 複製範例網址 import urllib.request as request (把urllib.request取別名為request ) import json (因資料為Json模式 所以載入Json模組) src="https://data.taipei/api/v1/dataset/296acfa2-5d93-4706-ad58-e83cc951863c?scope=resourceAquire" with.request.urlopen(src) as response: data=json.load(response) #利用json模組處理 json資料格式 print(data) >結果詳見影片12:23秒 ## 取得公司名稱 (解讀資料欄位) * 將公司名稱列表出來 (clist=company list) clist=data["result"]["results"] print(clist) >結果詳見影片14:35秒 先確認是要抓取的資料 * 用for 迴圈 把公司名稱一一印出來 clist=data["result"]["results"] for company in clist: print(company["公司名稱"]) >結果詳見影片16:25秒 #字典的key:字典的value * 把資料抓到檔案中,先開資料 clist=data["result"]["results"] with open("data.txt","w", encoding="utf-8")as file: "data.txt"打開一個檔案的檔案名稱 "w"寫入模式 encoding="utf-8" 有中文用此編碼 for company in clist: print(company["公司名稱"])for迴圈要在with中運作 file.write(company["公司名稱"]+"\n") 寫入檔案 換行 >結果詳見影片18:55秒 ## 課堂回顧 19:20 ## End