# Python - Day 7 ###### tags: `Python` ## 網路連線 ### 下載特定網址資料 1. 類似檔案操作 2. 需要開啟與關閉 3. 因此語法與(File IO)類似 ```python= import urllib.request as request import json import ssl context = ssl._create_default_https_context = ssl._create_unverified_context #解決該網站ssl認證的問題 src = ("https://www.ntu.edu.tw/") with request.urlopen(src) as response: data = response.read().decode("UTF-8") #取得台灣大學網站原始碼,並且以UTF8處理中文字 print ( data ) ``` ### 步驟 1. 需要 『公開資料』 2. 找尋適合的資料來源 3. 確認資料格式 4. 解讀資料 ```python= import urllib.request as request import json import ssl context = ssl._create_default_https_context = ssl._create_unverified_context src = "https://data.taipei/api/v1/dataset/296acfa2-5d93-4706-ad58-e83cc951863c?scope=resourceAquire" with request.urlopen(src) as response: data = json.load(response) print ( data ) ``` 5. 整理資料 ```python= from multiprocessing import context import urllib.request as request import json import ssl context = ssl._create_default_https_context = ssl._create_unverified_context 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 module 讀取資料 clist = data["result"]["results"] #格式是從json碼來的 ( key 'result' 中的 value 中的 key 'results' 中的 value(公司資訊) ) #print ( clist ) for company in clist : print ( company["公司名稱"] ) #"公司名稱"為一字典的key ``` 6. 寫入檔案 ```python= from multiprocessing import context import urllib.request as request import json import ssl context = ssl._create_default_https_context = ssl._create_unverified_context 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 module 讀取資料 clist = data["result"]["results"] #格式是從json碼來的 ( key 'result' 中的 value 中的 key 'results' 中的 value(公司資訊) ) #print ( clist ) with open( "output.txt" , "w" , encoding = "UTF-8" ) as out : #以UTF-8編碼處理檔案的中文字 for company in clist : out.write ( company["公司名稱"] ) out.write ( "\n" ) ```