為了成功從https (加密封包傳輸)下載資料,首先取消證書驗證
pandas
的read_csv(路徑)
,將檔案匯入import pandas as pd
url = "https://quality.data.gov.tw//dq_download_csv.php?nid=102775&md5_url=ea56d6e1f2642b2c5c44f9e8b6185d54"
df_csv = pd.read_csv(url)
df_csv.head()
停車場型態 | 停車場代碼 | 停車場名稱 | 停車場地址 | 停車場電話 | 即時車位 | 一般大型車 | 一般小型車 | 身障者小型車 | 婦幼者小型車 | 綠能小型車 | 一般機車 | 身障者機車 | 小型車充電樁 | 收費時間 | 收費費率 | 經緯度 | 備註欄 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 公有免費停車場 | 044 | 佳里停1公有停車場 | 臺南市佳里區安西路與文化路交叉口 | 2138172 | -1 | 0 | 11 | 1 | 1 | 1 | 0 | 0 | 0 | NaN | NaN | 23.16238,120.1714 | NaN |
1 | 公有免費停車場 | 045 | 佳里停2公有停車場 | 臺南市佳里區文化路與公園路交叉口 | 2138172 | -1 | 0 | 8 | 1 | 1 | 1 | 0 | 0 | 0 | NaN | NaN | 23.16293,120.17216 | NaN |
2 | 公有免費停車場 | 100 | 停2立體停車場 | 臺南市新市區環東路1段與南科二路 | NaN | -1 | 0 | 417 | 6 | 0 | 0 | 70 | 2 | 0 | NaN | NaN | 23.096305,120.284649 | 南科管理局 |
3 | 公有免費停車場 | 101 | 管理局地下停車場 | 臺南市新市區環東路1段與南科三路 | NaN | -1 | 0 | 402 | 14 | 0 | 0 | 467 | 6 | 0 | NaN | NaN | 23.101229,120.282238 | 南科管理局 |
4 | 公有免費停車場 | 102 | 管理局戶外平面停車場 | 臺南市新市區環東路1段 | NaN | -1 | 0 | 227 | 2 | 0 | 0 | 46 | 0 | 0 | NaN | NaN | 23.102632,120.283831 | 南科管理局 |
停車場型態 | 停車場代碼 | 停車場名稱 | 停車場地址 | 停車場電話 | 即時車位 | 一般大型車 | 一般小型車 | 身障者小型車 | 婦幼者小型車 | 綠能小型車 | 一般機車 | 身障者機車 | 小型車充電樁 | 收費時間 | 收費費率 | 經緯度 | 備註欄 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 公有免費停車場 | 044 | 佳里停1公有停車場 | 臺南市佳里區安西路與文化路交叉口 | 2138172 | -1 | 0 | 11 | 1 | 1 | 1 | 0 | 0 | 0 | NaN | NaN | 23.16238,120.1714 | NaN |
1 | 公有免費停車場 | 045 | 佳里停2公有停車場 | 臺南市佳里區文化路與公園路交叉口 | 2138172 | -1 | 0 | 8 | 1 | 1 | 1 | 0 | 0 | 0 | NaN | NaN | 23.16293,120.17216 | NaN |
2 | 公有免費停車場 | 100 | 停2立體停車場 | 臺南市新市區環東路1段與南科二路 | NaN | -1 | 0 | 417 | 6 | 0 | 0 | 70 | 2 | 0 | NaN | NaN | 23.096305,120.284649 | 南科管理局 |
3 | 公有免費停車場 | 101 | 管理局地下停車場 | 臺南市新市區環東路1段與南科三路 | NaN | -1 | 0 | 402 | 14 | 0 | 0 | 467 | 6 | 0 | NaN | NaN | 23.101229,120.282238 | 南科管理局 |
4 | 公有免費停車場 | 102 | 管理局戶外平面停車場 | 臺南市新市區環東路1段 | NaN | -1 | 0 | 227 | 2 | 0 | 0 | 46 | 0 | 0 | NaN | NaN | 23.102632,120.283831 | 南科管理局 |
csv
資料下載網址pandas
的 read_csv()
函數將檔案匯入openpyxl
和xlrd
套件pandas
的read_excel(路徑)
sheet_name
參數指定工作表名稱url = 'https://github.com/CGUIM-BigDataAnalysis/BigDataCGUIM/raw/master/EMBA_BigData/Data/%E6%96%B0%E7%AB%B9%E4%B8%8D%E5%8B%95%E7%94%A2.xls'
house = pd.read_excel(url,sheet_name = "不動產買賣")
house.head()
鄉鎮市區 | 交易標的 | 土地位置建物門牌 | 土地移轉總面積平方公尺 | 都市土地使用分區 | 非都市土地使用分區 | 非都市土地使用編定 | 交易年月日 | 交易筆棟數 | 移轉層次 | ... | 總價元 | 單價元平方公尺 | 車位類別 | 車位移轉總面積平方公尺 | 車位總價元 | 備註 | 主建物面積 | 附屬建物面積 | 陽台面積 | 電梯 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 新竹市 | 土地 | 明湖段840地號 | 18.74 | NaN | 山坡地保育區 | 農牧用地 | 1121101 | 土地1建物0車位0 | NaN | ... | 150000 | 8004.0 | NaN | 0.0 | 0 | NaN | 0.00 | 0.0 | 0.00 | 無 |
1 | 新竹市 | 土地 | 新莊段198地號 | 42.95 | NaN | NaN | NaN | 1121101 | 土地12建物0車位0 | NaN | ... | 4576000 | 106542.0 | NaN | 0.0 | 0 | 親友、員工、共有人或其他特殊關係間之交易; | 0.00 | 0.0 | 0.00 | 無 |
2 | 新竹市 | 房地(土地+建物) | 新竹市新竹市光華街95巷3號5樓之3 | 6.72 | 住 | NaN | NaN | 1121101 | 土地1建物1車位0 | 五層 | ... | 3630000 | 81665.0 | NaN | 0.0 | 0 | NaN | 31.62 | 0.0 | 3.74 | 有 |
3 | 新竹市 | 土地 | 南門段四小段177-25地號 | 29.67 | 都市:其他:道路用地 | NaN | NaN | 1121103 | 土地1建物0車位0 | NaN | ... | 1316221 | 44362.0 | NaN | 0.0 | 0 | 包含公共設施保留地用地; | 0.00 | 0.0 | 0.00 | 無 |
4 | 新竹市 | 土地 | 東山段一小段189-11地號 | 357.38 | NaN | NaN | NaN | 1121107 | 土地1建物0車位0 | NaN | ... | 5038989 | 14100.0 | NaN | 0.0 | 0 | 協議價購; | 0.00 | 0.0 | 0.00 | 無 |
5 rows × 31 columns
鄉鎮市區 交易標的 土地位置建物門牌 土地移轉總面積平方公尺 都市土地使用分區 非都市土地使用分區 \
0 新竹市 土地 明湖段840地號 18.74 NaN 山坡地保育區
1 新竹市 土地 新莊段198地號 42.95 NaN NaN
2 新竹市 房地(土地+建物) 新竹市新竹市光華街95巷3號5樓之3 6.72 住 NaN
3 新竹市 土地 南門段四小段177-25地號 29.67 都市:其他:道路用地 NaN
4 新竹市 土地 東山段一小段189-11地號 357.38 NaN NaN
非都市土地使用編定 交易年月日 交易筆棟數 移轉層次 ... 總價元 單價元平方公尺 車位類別 \
0 農牧用地 1121101 土地1建物0車位0 NaN ... 150000 8004.0 NaN
1 NaN 1121101 土地12建物0車位0 NaN ... 4576000 106542.0 NaN
2 NaN 1121101 土地1建物1車位0 五層 ... 3630000 81665.0 NaN
3 NaN 1121103 土地1建物0車位0 NaN ... 1316221 44362.0 NaN
4 NaN 1121107 土地1建物0車位0 NaN ... 5038989 14100.0 NaN
車位移轉總面積平方公尺 車位總價元 備註 主建物面積 附屬建物面積 陽台面積 電梯
0 0.0 0 NaN 0.00 0.0 0.00 無
1 0.0 0 親友、員工、共有人或其他特殊關係間之交易; 0.00 0.0 0.00 無
2 0.0 0 NaN 31.62 0.0 3.74 有
3 0.0 0 包含公共設施保留地用地; 0.00 0.0 0.00 無
4 0.0 0 協議價購; 0.00 0.0 0.00 無
[5 rows x 31 columns]
Excel
資料下載網址read_excel()
函數將檔案匯入,記得設定工作表名稱dumps
, dump
:儲存loads
, load
:讀取with ... as ...:
可自動在執行完區塊程式後將檔案關閉oepn(檔名)
開啟檔案
檔案物件.read()
讀取內容。一次取全部檔案物件.close()
關閉檔案oepn(檔名)
開啟檔案檔案物件.readlines()
讀取內容。一次取全部,分行存成list檔案物件.close()
關閉檔案oepn(檔名)
開啟檔案檔案物件.readline()
讀取內容。逐行讀檔案物件.close()
關閉檔案name = 'trump.txt'
handle = open(name)
counts = dict()
for line in handle:
words = line.split()
for word in words:
counts[word] = counts.get(word,0) + 1
bigcount = None
bigword = None
for word,count in counts.items():
if bigcount is None or count > bigcount:
bigword = word
bigcount = count
print(bigword, bigcount)
the 31
matplotlib
plt.imread(路徑)
載入圖片,為RGB向量import matplotlib
import matplotlib.pyplot as plt
im = plt.imread('figures/nycu_logo.png')
print(im)
plt.imshow(im, 'gray')
plt.show()
[[[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]
...
[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]]
[[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]
...
[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]]
[[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]
...
[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]]
...
[[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]
...
[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]]
[[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]
...
[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]]
[[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]
...
[1. 1. 1. 0.]
[1. 1. 1. 0.]
[1. 1. 1. 0.]]]
plt.imshow(向量)
呈現圖片plt.show()
在視窗中呈現圖片內容pandas
套件/edit#gid=0
或/edit?usp=sharing
字樣,請刪除/export?format=csv
google-api-python-client
套件link="https://docs.google.com/spreadsheets/d/1WqkYGfZZinxqhyqnbHIDC4NrHXbApfm8m8EvFR4SPAU"
csv_link="/export?format=csv"
pd.read_csv(link+csv_link)
交易日期 | 開盤 | 最高 | 最低 | 收盤 | 漲跌 | 漲跌(%) | 振幅(%) | 張數 | 筆數 | ... | 外資 | 投信 | 自營 | 合計 | 外資持股(%) | 融資增減 | 融資餘額 | 融券增減 | 融券餘額 | 券資比(%) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 25/02/14 | 1065 | 1070 | 1060 | 1060 | -30 | -2.75 | 0.92 | 73,417 | 218,986 | ... | -20,971 | -91.4 | +34.5 | -21,028 | 73.4 | +1,090 | 23,081 | -100 | 111 | 0.48 |
1 | 25/02/13 | 1090 | 1095 | 1080 | 1090 | -10 | -0.91 | 1.36 | 35,682 | 72,456 | ... | -10,885 | +454 | +1,117 | -9,313 | 73.5 | +262 | 21,991 | -56 | 211 | 0.96 |
2 | 25/02/12 | 1110 | 1115 | 1100 | 1100 | -10 | -0.90 | 1.35 | 26,190 | 38,511 | ... | +213 | -19 | -347 | -153 | 73.6 | +129 | 21,729 | -4 | 267 | 1.23 |
3 | 25/02/11 | 1110 | 1115 | 1100 | 1110 | 5 | 0.45 | 1.36 | 21,023 | 31,837 | ... | +1,229 | -353 | -292 | +584 | 73.6 | -38 | 21,600 | 10 | 271 | 1.25 |
4 | 25/02/10 | 1125 | 1125 | 1095 | 1105 | -20 | -1.78 | 2.67 | 31,037 | 60,839 | ... | -2,271 | -132 | -479 | -2,882 | 73.6 | +532 | 21,638 | -24 | 261 | 1.21 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
235 | 24/02/23 | 701 | 703 | 696 | 697 | 5 | 0.72 | 1.01 | 48,404 | 48,018 | ... | +20,881 | -366 | -570 | +19,946 | 74.2 | -1,807 | 13,053 | 9 | 392 | 3.00 |
236 | 24/02/22 | 695 | 695 | 685 | 692 | 11 | 1.62 | 1.47 | 34,269 | 36,998 | ... | +7,728 | +37.7 | +2,125 | +9,890 | 74.1 | +899 | 14,860 | 19 | 383 | 2.58 |
237 | 24/02/21 | 678 | 683 | 678 | 681 | -6 | -0.87 | 0.73 | 31,981 | 36,004 | ... | -5,942 | +39.3 | +1,514 | -4,389 | 74.0 | -145 | 13,961 | -26 | 364 | 2.61 |
238 | 24/02/20 | 675 | 688 | 675 | 687 | 9 | 1.33 | 1.92 | 31,404 | 32,847 | ... | +2,641 | -12.4 | -1,188 | +1,441 | 74.1 | -249 | 14,106 | 23 | 390 | 2.76 |
239 | 24/02/19 | 674 | 682 | 674 | 678 | -5 | -0.73 | 1.17 | 36,367 | 35,240 | ... | -10,732 | +81.6 | +1,855 | -8,795 | 74.0 | +616 | 14,355 | -5 | 367 | 2.56 |
240 rows × 22 columns
交易日期 | 開盤 | 最高 | 最低 | 收盤 | 漲跌 | 漲跌(%) | 振幅(%) | 張數 | 筆數 | ... | 外資 | 投信 | 自營 | 合計 | 外資持股(%) | 融資增減 | 融資餘額 | 融券增減 | 融券餘額 | 券資比(%) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 25/02/14 | 1065 | 1070 | 1060 | 1060 | -30 | -2.75 | 0.92 | 73,417 | 218,986 | ... | -20,971 | -91.4 | +34.5 | -21,028 | 73.4 | +1,090 | 23,081 | -100 | 111 | 0.48 |
1 | 25/02/13 | 1090 | 1095 | 1080 | 1090 | -10 | -0.91 | 1.36 | 35,682 | 72,456 | ... | -10,885 | +454 | +1,117 | -9,313 | 73.5 | +262 | 21,991 | -56 | 211 | 0.96 |
2 | 25/02/12 | 1110 | 1115 | 1100 | 1100 | -10 | -0.90 | 1.35 | 26,190 | 38,511 | ... | +213 | -19 | -347 | -153 | 73.6 | +129 | 21,729 | -4 | 267 | 1.23 |
3 | 25/02/11 | 1110 | 1115 | 1100 | 1110 | 5 | 0.45 | 1.36 | 21,023 | 31,837 | ... | +1,229 | -353 | -292 | +584 | 73.6 | -38 | 21,600 | 10 | 271 | 1.25 |
4 | 25/02/10 | 1125 | 1125 | 1095 | 1105 | -20 | -1.78 | 2.67 | 31,037 | 60,839 | ... | -2,271 | -132 | -479 | -2,882 | 73.6 | +532 | 21,638 | -24 | 261 | 1.21 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
235 | 24/02/23 | 701 | 703 | 696 | 697 | 5 | 0.72 | 1.01 | 48,404 | 48,018 | ... | +20,881 | -366 | -570 | +19,946 | 74.2 | -1,807 | 13,053 | 9 | 392 | 3.00 |
236 | 24/02/22 | 695 | 695 | 685 | 692 | 11 | 1.62 | 1.47 | 34,269 | 36,998 | ... | +7,728 | +37.7 | +2,125 | +9,890 | 74.1 | +899 | 14,860 | 19 | 383 | 2.58 |
237 | 24/02/21 | 678 | 683 | 678 | 681 | -6 | -0.87 | 0.73 | 31,981 | 36,004 | ... | -5,942 | +39.3 | +1,514 | -4,389 | 74.0 | -145 | 13,961 | -26 | 364 | 2.61 |
238 | 24/02/20 | 675 | 688 | 675 | 687 | 9 | 1.33 | 1.92 | 31,404 | 32,847 | ... | +2,641 | -12.4 | -1,188 | +1,441 | 74.1 | -249 | 14,106 | 23 | 390 | 2.76 |
239 | 24/02/19 | 674 | 682 | 674 | 678 | -5 | -0.73 | 1.17 | 36,367 | 35,240 | ... | -10,732 | +81.6 | +1,855 | -8,795 | 74.0 | +616 | 14,355 | -5 | 367 | 2.56 |
240 rows × 22 columns
交易日期 開盤 最高 最低 收盤 漲跌 漲跌(%) 振幅(%) 張數 筆數 ... \
0 25/02/14 1065 1070 1060 1060 -30 -2.75 0.92 73,417 218,986 ...
1 25/02/13 1090 1095 1080 1090 -10 -0.91 1.36 35,682 72,456 ...
2 25/02/12 1110 1115 1100 1100 -10 -0.90 1.35 26,190 38,511 ...
3 25/02/11 1110 1115 1100 1110 5 0.45 1.36 21,023 31,837 ...
4 25/02/10 1125 1125 1095 1105 -20 -1.78 2.67 31,037 60,839 ...
.. ... ... ... ... ... .. ... ... ... ... ...
235 24/02/23 701 703 696 697 5 0.72 1.01 48,404 48,018 ...
236 24/02/22 695 695 685 692 11 1.62 1.47 34,269 36,998 ...
237 24/02/21 678 683 678 681 -6 -0.87 0.73 31,981 36,004 ...
238 24/02/20 675 688 675 687 9 1.33 1.92 31,404 32,847 ...
239 24/02/19 674 682 674 678 -5 -0.73 1.17 36,367 35,240 ...
外資 投信 自營 合計 外資持股(%) 融資增減 融資餘額 融券增減 融券餘額 券資比(%)
0 -20,971 -91.4 +34.5 -21,028 73.4 +1,090 23,081 -100 111 0.48
1 -10,885 +454 +1,117 -9,313 73.5 +262 21,991 -56 211 0.96
2 +213 -19 -347 -153 73.6 +129 21,729 -4 267 1.23
3 +1,229 -353 -292 +584 73.6 -38 21,600 10 271 1.25
4 -2,271 -132 -479 -2,882 73.6 +532 21,638 -24 261 1.21
.. ... ... ... ... ... ... ... ... ... ...
235 +20,881 -366 -570 +19,946 74.2 -1,807 13,053 9 392 3.00
236 +7,728 +37.7 +2,125 +9,890 74.1 +899 14,860 19 383 2.58
237 -5,942 +39.3 +1,514 -4,389 74.0 -145 13,961 -26 364 2.61
238 +2,641 -12.4 -1,188 +1,441 74.1 -249 14,106 23 390 2.76
239 -10,732 +81.6 +1,855 -8,795 74.0 +616 14,355 -5 367 2.56
[240 rows x 22 columns]
pd.read_csv()
函數將檔案匯入使用gdown
指令,並輸入google drive 檔案ID
https://drive.google.com/uc?id=1ivP1VeeU0QTdN1pJcudEaIgKO33DMDm7
執行後會儲存在工作路徑中,在用相對應的方法匯入即可
CSV
JSON
XML
requests
套件json
套件requests
套件的get(網址)
擷取資料params = {'param':'1'}
以及headers = {'Connection':'close'}
設定回傳結果.json()
,將檔案轉成JSON格式探索資料,使用.keys()
查看keys
探索資料,發現是dist (data)中retVal key儲存含有資料的list
[{'scity': '台中市',
'scityen': 'Taichung City',
'sna': 'YouBike2.0_綠川東中山路口',
'sarea': '中區',
'ar': '綠川東街/中山路口(東側)',
'snaen': 'YouBike2.0_Luchuan E. St. / Zhongshan Rd.',
'sareaen': 'Central Dist',
'aren': 'Luchuan E. St. & Zhongshan Rd. Intersection (East)',
'sno': '500601001',
'tot': '16',
'sbi': '2',
'mday': '20250327174231',
'lat': '24.13785',
'lng': '120.68337',
'bemp': '14',
'act': 1,
'sbi_detail': {'yb2': '2', 'eyb': '0'}},
{'scity': '台中市',
'scityen': 'Taichung City',
'sna': 'YouBike2.0_繼光光復路口',
'sarea': '中區',
'ar': '繼光街166號(對側人行道)',
'snaen': 'YouBike2.0_Jiguang St. / Guangfu Rd.',
'sareaen': 'Central Dist',
'aren': 'No.166, Jiguang St. (Opposite)',
'sno': '500601002',
'tot': '18',
'sbi': '2',
'mday': '20250327174331',
'lat': '24.1411',
'lng': '120.68474',
'bemp': '16',
'act': 1,
'sbi_detail': {'yb2': '2', 'eyb': '0'}}]
探索資料,發現是dist (data)中retVal key儲存含有資料的list
{'scity': '台中市',
'scityen': 'Taichung City',
'sna': 'YouBike2.0_綠川東中山路口',
'sarea': '中區',
'ar': '綠川東街/中山路口(東側)',
'snaen': 'YouBike2.0_Luchuan E. St. / Zhongshan Rd.',
'sareaen': 'Central Dist',
'aren': 'Luchuan E. St. & Zhongshan Rd. Intersection (East)',
'sno': '500601001',
'tot': '16',
'sbi': '2',
'mday': '20250327174231',
'lat': '24.13785',
'lng': '120.68337',
'bemp': '14',
'act': 1,
'sbi_detail': {'yb2': '2', 'eyb': '0'}}
requests.get()
下載,.json
轉型type()
查看資料類別keys()
查看資料擷取方法,並印出來試試看File system以SQLite為例,需要先安裝sqlite3
套件
dbfile
local path for db file or urlsqlite3.connect(dbfile)
connect to the db file
dbfile
can be local path or urlconn.execute("SQL")
execute SQL
pd.read_sql_query("SQL")
retrieve data with SQL
and save as dataframeconn.close()
close the connection ArtistId Name
0 1 AC/DC
1 2 Accept
2 3 Aerosmith
3 4 Alanis Morissette
4 5 Alice In Chains
.. ... ...
270 271 Mela Tenenbaum, Pro Musica Prague & Richard Kapp
271 272 Emerson String Quartet
272 273 C. Monteverdi, Nigel Rogers - Chiaroscuro; Lon...
273 274 Nash Ensemble
274 275 Philip Glass Ensemble
[275 rows x 2 columns]
以MySQL為例,需要先安裝mysql-connector-python
套件
pandas
和duckdb
套件.csv
as an example
file_path
can be local file path
or url
duckdb.connect(database=':memory:')
open the connectionconn.execute(SQL)
execute SQL
CREATE
, SELECT
, etcconn.close()
close the connectionconn.execute(SQL)
execute SQL
CREATE
, SELECT
, etcSELECT
retrieval can be stored in dataframeconn.close()
close the connection*
…. for data preprocessing Date Open High Low Close Volume
0 2025-02-18 1,085.00 1,100.00 1,080.00 1,100.00 22,357,939
1 2025-02-17 1,065.00 1,085.00 1,065.00 1,085.00 36,903,859
2 2025-02-14 1,065.00 1,070.00 1,060.00 1,060.00 70,775,922
3 2025-02-13 1,090.00 1,095.00 1,080.00 1,090.00 34,840,520
4 2025-02-12 1,110.00 1,115.00 1,100.00 1,100.00 24,977,391
.. ... ... ... ... ... ...
237 2024-02-23 701.00 703.00 696.00 697.00 47,810,473
238 2024-02-22 695.00 695.00 685.00 692.00 34,122,391
239 2024-02-21 678.00 683.00 678.00 681.00 31,417,539
240 2024-02-20 675.00 688.00 675.00 687.00 30,897,730
241 2024-02-19 674.00 682.00 674.00 678.00 35,158,832
[242 rows x 6 columns]
We need more than a *
…. for data preprocessing
conn = duckdb.connect(database=':memory:')
conn.execute(f"""
CREATE TABLE TSMC_stock AS
SELECT
Date, -- Keep the Date column unchanged
CAST(REPLACE(Open, ',', '') AS DOUBLE) AS Open,
CAST(REPLACE(High, ',', '') AS DOUBLE) AS High,
CAST(REPLACE(Low, ',', '') AS DOUBLE) AS Low,
CAST(REPLACE(Close, ',', '') AS DOUBLE) AS Close,
CAST(REPLACE(Volume, ',', '') AS BIGINT) AS Volume
FROM read_csv_auto('{file_path}')
""")
df_duckdb = conn.execute("SELECT * FROM TSMC_stock").fetchdf()
conn.close()
Date Open High Low Close Volume
0 2025-02-18 1085.0 1100.0 1080.0 1100.0 22357939
1 2025-02-17 1065.0 1085.0 1065.0 1085.0 36903859
2 2025-02-14 1065.0 1070.0 1060.0 1060.0 70775922
3 2025-02-13 1090.0 1095.0 1080.0 1090.0 34840520
4 2025-02-12 1110.0 1115.0 1100.0 1100.0 24977391
.. ... ... ... ... ... ...
237 2024-02-23 701.0 703.0 696.0 697.0 47810473
238 2024-02-22 695.0 695.0 685.0 692.0 34122391
239 2024-02-21 678.0 683.0 678.0 681.0 31417539
240 2024-02-20 675.0 688.0 675.0 687.0 30897730
241 2024-02-19 674.0 682.0 674.0 678.0 35158832
[242 rows x 6 columns]
You can also use duckdb.query(SQL).to_df()
for data retrieval
Query = '''
SELECT YEAR(Date) AS Year, MONTH(Date) AS Month, AVG(Open) as avg_price, COUNT(Open) AS count
FROM df_duckdb
GROUP BY Year, Month
ORDER BY avg_price DESC
'''
df_duckdb2 = duckdb.query(Query).to_df()
df_duckdb2
Year | Month | avg_price | count | |
---|---|---|---|---|
0 | 2025 | 1 | 1106.000000 | 15 |
1 | 2025 | 2 | 1095.000000 | 12 |
2 | 2024 | 12 | 1070.681818 | 22 |
3 | 2024 | 10 | 1041.105263 | 19 |
4 | 2024 | 11 | 1034.571429 | 21 |
5 | 2024 | 7 | 990.476190 | 21 |
6 | 2024 | 9 | 948.850000 | 20 |
7 | 2024 | 8 | 937.454545 | 22 |
8 | 2024 | 6 | 916.000000 | 19 |
9 | 2024 | 5 | 829.909091 | 22 |
10 | 2024 | 4 | 788.400000 | 20 |
11 | 2024 | 3 | 762.380952 | 21 |
12 | 2024 | 2 | 689.250000 | 8 |
beautifulsoup4
套件輔助需要先安裝beautifulsoup4
以及requests
套件。
<a class=’link’ href=’url’>29.99</a>
<a>
</a>
href=’url’
, class=’link’
29.99
requests
套件的get(網址)
函數,輸入網址,將網頁載入python分析環境。.text
取得網頁原始碼 (.html)StockUrl = "https://www.google.com/finance/quote/2330:TPE?hl=zh-TW"
res = requests.get(StockUrl)
res.text[0:1000] ## print first 1000 chars
'<!doctype html><html lang="zh-TW" dir="ltr"><head><base href="https://www.google.com/finance/"><link rel="preconnect" href="//www.gstatic.com"><meta name="referrer" content="origin"><script nonce="SZy96BYnBmXLJGhcLlq0ww">window[\'ppConfig\'] = {productName: \'GoogleFinanceUi\', deleteIsEnforced: true , sealIsEnforced: true , heartbeatRate: 0.5 , periodicReportingRateMillis: 60000.0 , disableAllReporting: false };(function(){\'use strict\';function k(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}var l=typeof Object.defineProperties=="function"?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};\nfunction m(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var n=m(this);function p(a,b){if(b)a:{var '
BeautifulSoup
套件提供的解析方法BeautifulSoup(html檔案,格式)
res.text
,以及設定格式"html.parser"
,完成HTML解析解析後內容.prettify
取得排版後的網頁原始碼Python 搜尋法,多用於搜尋<>
tag內的內容
find(tag名稱)
:
find_all(tag名稱)
CCS selector 搜尋法,有較多彈性
select_one()
class
or id
等屬性)select()
class
or id
等屬性)範例:class 包含 fxKbKc
select()
class
or id
等屬性)class=
可用.
代表id=
可用#
代表.get_text()
可抓取element內文字.get("屬性名稱")
可抓取屬性內容範例:class 包含 gyFHrc
select()
class
or id
等屬性)[<div class="gyFHrc"><span data-is-tooltip-wrapper="true"><div aria-describedby="i15" class="mfs7Fc" data-tooltip-anchor-boundary-type="2" data-tooltip-x-position="2" jsaction="mouseenter:tfO1Yc; focus:AHmuwe; blur:O22p3e; mouseleave:JywGue; touchstart:p6p2H; touchend:yfqBxc;mlnRJb:fLiPzd;" jscontroller="e2jnoe">前次收盤價</div><div aria-hidden="true" class="EY8ABd-OWXEXe-TAWMXe" id="i15" role="tooltip">最後收盤價</div></span><div class="P6K39c">$980.00</div></div>,
<div class="gyFHrc"><span data-is-tooltip-wrapper="true"><div aria-describedby="i16" class="mfs7Fc" data-tooltip-anchor-boundary-type="2" data-tooltip-x-position="2" jsaction="mouseenter:tfO1Yc; focus:AHmuwe; blur:O22p3e; mouseleave:JywGue; touchstart:p6p2H; touchend:yfqBxc;mlnRJb:fLiPzd;" jscontroller="e2jnoe">單日股價範圍</div><div aria-hidden="true" class="EY8ABd-OWXEXe-TAWMXe" id="i16" role="tooltip">過去一天內最高價與最低價之間的價格範圍</div></span><div class="P6K39c">$958.00 - $964.00</div></div>,
<div class="gyFHrc"><span data-is-tooltip-wrapper="true"><div aria-describedby="i17" class="mfs7Fc" data-tooltip-anchor-boundary-type="2" data-tooltip-x-position="2" jsaction="mouseenter:tfO1Yc; focus:AHmuwe; blur:O22p3e; mouseleave:JywGue; touchstart:p6p2H; touchend:yfqBxc;mlnRJb:fLiPzd;" jscontroller="e2jnoe">一年股價範圍</div><div aria-hidden="true" class="EY8ABd-OWXEXe-TAWMXe" id="i17" role="tooltip">過去 52 週內最高價與最低價之間的價格範圍</div></span><div class="P6K39c">$740.00 - $1,160.00</div></div>,
<div class="gyFHrc"><span data-is-tooltip-wrapper="true"><div aria-describedby="i18" class="mfs7Fc" data-tooltip-anchor-boundary-type="2" data-tooltip-x-position="2" jsaction="mouseenter:tfO1Yc; focus:AHmuwe; blur:O22p3e; mouseleave:JywGue; touchstart:p6p2H; touchend:yfqBxc;mlnRJb:fLiPzd;" jscontroller="e2jnoe">總市值</div><div aria-hidden="true" class="EY8ABd-OWXEXe-TAWMXe" id="i18" role="tooltip">一種估價方法,將公司股價乘以在外流通總股數。</div></span><div class="P6K39c">24.84兆 TWD</div></div>,
<div class="gyFHrc"><span data-is-tooltip-wrapper="true"><div aria-describedby="i19" class="mfs7Fc" data-tooltip-anchor-boundary-type="2" data-tooltip-x-position="2" jsaction="mouseenter:tfO1Yc; focus:AHmuwe; blur:O22p3e; mouseleave:JywGue; touchstart:p6p2H; touchend:yfqBxc;mlnRJb:fLiPzd;" jscontroller="e2jnoe">平均交易量</div><div aria-hidden="true" class="EY8ABd-OWXEXe-TAWMXe" id="i19" role="tooltip">過去 30 天內平均每天的成交股數</div></span><div class="P6K39c">3966.26萬</div></div>,
<div class="gyFHrc"><span data-is-tooltip-wrapper="true"><div aria-describedby="i20" class="mfs7Fc" data-tooltip-anchor-boundary-type="2" data-tooltip-x-position="2" jsaction="mouseenter:tfO1Yc; focus:AHmuwe; blur:O22p3e; mouseleave:JywGue; touchstart:p6p2H; touchend:yfqBxc;mlnRJb:fLiPzd;" jscontroller="e2jnoe">本益比</div><div aria-hidden="true" class="EY8ABd-OWXEXe-TAWMXe" id="i20" role="tooltip">目前股價與過去十二個月每股盈餘總和兩者之間的比率,這個比率可反映某檔股票的價格相較於其他股票是高還低</div></span><div class="P6K39c">21.17</div></div>,
<div class="gyFHrc"><span data-is-tooltip-wrapper="true"><div aria-describedby="i21" class="mfs7Fc" data-tooltip-anchor-boundary-type="2" data-tooltip-x-position="2" jsaction="mouseenter:tfO1Yc; focus:AHmuwe; blur:O22p3e; mouseleave:JywGue; touchstart:p6p2H; touchend:yfqBxc;mlnRJb:fLiPzd;" jscontroller="e2jnoe">股利收益率</div><div aria-hidden="true" class="EY8ABd-OWXEXe-TAWMXe" id="i21" role="tooltip">年股利與目前股價兩者之間的比率,這個比率可用於估計某檔股票的股利報酬率</div></span><div class="P6K39c">1.77%</div></div>,
<div class="gyFHrc"><span data-is-tooltip-wrapper="true"><div aria-describedby="i22" class="mfs7Fc" data-tooltip-anchor-boundary-type="2" data-tooltip-x-position="2" jsaction="mouseenter:tfO1Yc; focus:AHmuwe; blur:O22p3e; mouseleave:JywGue; touchstart:p6p2H; touchend:yfqBxc;mlnRJb:fLiPzd;" jscontroller="e2jnoe">主要交易所</div><div aria-hidden="true" class="EY8ABd-OWXEXe-TAWMXe" id="i22" role="tooltip">這檔證券的上市交易所</div></span><div class="P6K39c">TPE</div></div>,
<div class="gyFHrc"><div class="mfs7Fc"><span aria-hidden="true" class="notranslate gnzz8b"><svg class="NMm5M" focusable="false" height="14" viewbox="0 0 24 24" width="14"><path d="M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 9c2.7 0 5.8 1.29 6 2v1H6v-.99c.2-.72 3.3-2.01 6-2.01m0-11C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z"></path></svg></span>執行長</div><div class="P6K39c"><ul class="OEHt4c"><li><a class="tBHE4e" href="https://www.google.com/search?q=%E9%AD%8F%E5%93%B2%E5%AE%B6&hl=zh-TW" jslog="166166;ved:2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQlpIKegQIAhBe;track:click" target="_blank">魏哲家</a></li></ul></div></div>,
<div class="gyFHrc"><div class="mfs7Fc"><span aria-hidden="true" class="notranslate gnzz8b"><svg class="NMm5M" focusable="false" height="14" viewbox="0 0 24 24" width="14"><path d="M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10z"></path><path d="M14.5 13a2.5 2.5 0 0 0 0 5 2.5 2.5 0 0 0 0-5z"></path></svg></span>成立時間</div><div class="P6K39c">1987年2月21日</div></div>,
<div class="gyFHrc"><div class="mfs7Fc"><span aria-hidden="true" class="notranslate gnzz8b"><svg class="NMm5M" focusable="false" height="14" viewbox="0 0 24 24" width="14"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z"></path><circle cx="12" cy="9" r="2.5"></circle></svg></span>總部</div><div class="P6K39c"><a class="tBHE4e" href="https://www.google.com/maps/place/8%2C%20Li-Hsin%20Rd.%206%2C%20%E6%96%B0%E7%AB%B9%2C%20%E8%87%BA%E7%81%A3%E7%9C%81%2C%20%E5%8F%B0%E7%81%A3?hl=zh-TW" jslog="166166;ved:2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQlpIKegQIAhBe;track:click" target="_blank">臺灣省新竹<br/>台灣</a></div></div>,
<div class="gyFHrc"><div class="mfs7Fc"><span aria-hidden="true" class="notranslate gnzz8b"><svg class="NMm5M" focusable="false" height="14" viewbox="0 0 24 24" width="14"><path d="M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16c1.1 0 2-.9 2-2V6a2 2 0 0 0-2-2zm0 14H4V8h16v10z"></path></svg></span>網站</div><div class="P6K39c"><a class="tBHE4e" href="http://www.tsmc.com/" jslog="166166;ved:2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQlpIKegQIAhBe;track:click" rel="noopener noreferrer" target="_blank">tsmc.com</a></div></div>,
<div class="gyFHrc"><div class="mfs7Fc"><span aria-hidden="true" class="notranslate gnzz8b"><svg class="NMm5M" focusable="false" height="14" viewbox="0 0 24 24" width="14"><path d="M15 8c0-1.42-.5-2.73-1.33-3.76.42-.14.86-.24 1.33-.24 2.21 0 4 1.79 4 4s-1.79 4-4 4c-.43 0-.84-.09-1.23-.21-.03-.01-.06-.02-.1-.03A5.98 5.98 0 0 0 15 8zm1.66 5.13C18.03 14.06 19 15.32 19 17v3h4v-3c0-2.18-3.58-3.47-6.34-3.87zM9 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 9c-2.7 0-5.8 1.29-6 2.01V18h12v-1c-.2-.71-3.3-2-6-2M9 4c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 9c2.67 0 8 1.34 8 4v3H1v-3c0-2.66 5.33-4 8-4z"></path></svg></span>員工數</div><div class="P6K39c">65,152</div></div>]
.get_text()
可抓取element內文字.get("屬性名稱")
可抓取屬性內容前次收盤價最後收盤價$980.00
單日股價範圍過去一天內最高價與最低價之間的價格範圍$958.00 - $964.00
一年股價範圍過去 52 週內最高價與最低價之間的價格範圍$740.00 - $1,160.00
總市值一種估價方法,將公司股價乘以在外流通總股數。24.84兆 TWD
平均交易量過去 30 天內平均每天的成交股數3966.26萬
本益比目前股價與過去十二個月每股盈餘總和兩者之間的比率,這個比率可反映某檔股票的價格相較於其他股票是高還低21.17
股利收益率年股利與目前股價兩者之間的比率,這個比率可用於估計某檔股票的股利報酬率1.77%
主要交易所這檔證券的上市交易所TPE
執行長魏哲家
成立時間1987年2月21日
總部臺灣省新竹台灣
網站tsmc.com
員工數65,152
範例:class 包含 z4rs2b
select()
: 取得所有符合CSS條件的element (class
or id
等屬性)[<div class="z4rs2b"><a data-ved="2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhAx" href="https://udn.com/news/story/7251/8634410" jslog="106424;ved:2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhAx;track:click" rel="noopener noreferrer" target="_blank"><div class="Tfehrf"><div class="nkXTJ W8knGc" jsname="GvmPSb"><div class="sfyJob">聯合新聞網</div><div class="cCEUJe"><div class="Adak">20 小時前</div><div class="hVmHve" jsname="iwaAEc"></div></div></div><div class="Yfwt5">轉折點到了? 台積電出現1,043元盤後鉅額交易</div></div></a></div>,
<div class="z4rs2b"><a data-ved="2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhA1" href="https://finance.ettoday.net/news/2932666" jslog="106424;ved:2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhA1;track:click" rel="noopener noreferrer" target="_blank"><div class="Tfehrf"><div class="nkXTJ W8knGc" jsname="GvmPSb"><div class="sfyJob">ETtoday財經雲</div><div class="cCEUJe"><div class="Adak">6 小時前</div><div class="hVmHve" jsname="iwaAEc"></div></div></div><div class="Yfwt5">台積電千億美元投資 英特爾前執行長基辛格:難重振美國晶片業</div></div></a></div>,
<div class="z4rs2b"><a data-ved="2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhA5" href="https://www.msn.com/zh-tw/news/world/%E5%AD%A3%E8%BE%9B%E6%A0%BC-%E5%8F%B0%E7%A9%8D%E9%9B%BB%E6%8A%95%E8%B3%87%E4%B8%8D%E6%9C%83%E8%AE%93%E7%BE%8E%E5%9C%8B%E9%87%8D%E8%BF%94%E6%99%B6%E7%89%87%E9%BE%8D%E9%A0%AD/ar-AA1BK8oW?ocid=finance-verthp-feeds" jslog="106424;ved:2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhA5;track:click" rel="noopener noreferrer" target="_blank"><div class="Tfehrf"><div class="nkXTJ W8knGc" jsname="GvmPSb"><div class="sfyJob">MSN</div><div class="cCEUJe"><div class="Adak">4 小時前</div><div class="hVmHve" jsname="iwaAEc"></div></div></div><div class="Yfwt5">季辛格: 台積電投資不會讓美國重返晶片龍頭</div></div></a></div>,
<div class="z4rs2b"><a data-ved="2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhA7" href="https://tw.stock.yahoo.com/news/%E5%B7%9D%E6%99%AE%E8%A6%81%E6%94%B6%E6%B1%BD%E8%BB%8A%E9%97%9C%E7%A8%85%EF%BC%81%E5%8F%B0%E8%82%A1%E8%B7%8C%E9%80%BE300%E9%BB%9E%E3%80%81%E5%A4%B1%E5%AE%8822000%E9%BB%9E-%E5%8F%B0%E7%A9%8D%E9%9B%BB%E6%8C%AB21%E5%85%83%E8%87%B3959%E5%85%83-010329222.html" jslog="106424;ved:2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhA7;track:click" rel="noopener noreferrer" target="_blank"><div class="Tfehrf"><div class="nkXTJ W8knGc" jsname="GvmPSb"><div class="sfyJob">奇摩股市</div><div class="cCEUJe"><div class="Adak">7 小時前</div><div class="hVmHve" jsname="iwaAEc"></div></div></div><div class="Yfwt5">川普要收汽車關稅!台股跌逾300點、失守22000點 台積電挫21元至959元</div></div></a></div>,
<div class="z4rs2b"><a data-ved="2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhA_" href="https://www.ctee.com.tw/news/20250327700785-430606" jslog="106424;ved:2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhA_;track:click" rel="noopener noreferrer" target="_blank"><div class="Tfehrf"><div class="nkXTJ W8knGc" jsname="GvmPSb"><div class="sfyJob">工商時報</div><div class="cCEUJe"><div class="Adak">6 小時前</div><div class="hVmHve" jsname="iwaAEc"></div></div></div><div class="Yfwt5">台積電擴大投資亞歷桑那鳳凰城富人區房價年漲逾三成- 房市</div></div></a></div>,
<div class="z4rs2b"><a data-ved="2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhBB" href="https://www.cna.com.tw/news/aipl/202503260103.aspx" jslog="106424;ved:2ahUKEwje1dDU_amMAxVT40wCHXhVHUQQuL8GegQIAhBB;track:click" rel="noopener noreferrer" target="_blank"><div class="Tfehrf"><div class="nkXTJ W8knGc" jsname="GvmPSb"><div class="sfyJob">中央社 CNA</div><div class="cCEUJe"><div class="Adak">1 天前</div><div class="hVmHve" jsname="iwaAEc"></div></div></div><div class="Yfwt5">日經亞洲:台積電擴大對美投資不可避免但有風險| 政治</div></div></a></div>]
.get_text()
可抓取element內文字.get("屬性名稱")
可抓取屬性內容requests.get(網址)
BeautifulSoup(下載網頁.text, "html.parser")
find(tag name)
, select(css條件)
get_text()
, get(屬性名稱)
.get_text()
可抓取element內文字.get("屬性名稱")
可抓取屬性內容https://udn.com/news/story/7251/8634410
https://finance.ettoday.net/news/2932666
https://www.msn.com/zh-tw/news/world/%E5%AD%A3%E8%BE%9B%E6%A0%BC-%E5%8F%B0%E7%A9%8D%E9%9B%BB%E6%8A%95%E8%B3%87%E4%B8%8D%E6%9C%83%E8%AE%93%E7%BE%8E%E5%9C%8B%E9%87%8D%E8%BF%94%E6%99%B6%E7%89%87%E9%BE%8D%E9%A0%AD/ar-AA1BK8oW?ocid=finance-verthp-feeds
https://tw.stock.yahoo.com/news/%E5%B7%9D%E6%99%AE%E8%A6%81%E6%94%B6%E6%B1%BD%E8%BB%8A%E9%97%9C%E7%A8%85%EF%BC%81%E5%8F%B0%E8%82%A1%E8%B7%8C%E9%80%BE300%E9%BB%9E%E3%80%81%E5%A4%B1%E5%AE%8822000%E9%BB%9E-%E5%8F%B0%E7%A9%8D%E9%9B%BB%E6%8C%AB21%E5%85%83%E8%87%B3959%E5%85%83-010329222.html
https://www.ctee.com.tw/news/20250327700785-430606
https://www.cna.com.tw/news/aipl/202503260103.aspx
requests.get(網址)
BeautifulSoup(下載網頁.text, "html.parser")
find(tag名稱)
, select(css條件)
get_text()
, get(屬性名稱)
首先取得連結list。
補充內容:
sequence物件.append()
可新增內容至sequence中url_list = []
title_list = []
for title_click in news:
url_list.append(title_click.find("a").get("href"))
title_list.append(title_click.get_text())
print(url_list)
['https://udn.com/news/story/7251/8634410', 'https://finance.ettoday.net/news/2932666', 'https://www.msn.com/zh-tw/news/world/%E5%AD%A3%E8%BE%9B%E6%A0%BC-%E5%8F%B0%E7%A9%8D%E9%9B%BB%E6%8A%95%E8%B3%87%E4%B8%8D%E6%9C%83%E8%AE%93%E7%BE%8E%E5%9C%8B%E9%87%8D%E8%BF%94%E6%99%B6%E7%89%87%E9%BE%8D%E9%A0%AD/ar-AA1BK8oW?ocid=finance-verthp-feeds', 'https://tw.stock.yahoo.com/news/%E5%B7%9D%E6%99%AE%E8%A6%81%E6%94%B6%E6%B1%BD%E8%BB%8A%E9%97%9C%E7%A8%85%EF%BC%81%E5%8F%B0%E8%82%A1%E8%B7%8C%E9%80%BE300%E9%BB%9E%E3%80%81%E5%A4%B1%E5%AE%8822000%E9%BB%9E-%E5%8F%B0%E7%A9%8D%E9%9B%BB%E6%8C%AB21%E5%85%83%E8%87%B3959%E5%85%83-010329222.html', 'https://www.ctee.com.tw/news/20250327700785-430606', 'https://www.cna.com.tw/news/aipl/202503260103.aspx']
以第一個新聞連結為例,下載html後,重複步驟,取得本文
res = requests.get(url_list[1])
soup = BeautifulSoup(res.text, "html.parser")
news_full = soup.select("p")
full_text = ""
for news_para in news_full:
full_text = full_text + news_para.get_text()
print("標題: "+title_list[1] +", 內文:" + full_text)
標題: ETtoday財經雲6 小時前台積電千億美元投資 英特爾前執行長基辛格:難重振美國晶片業, 內文:▲英特爾前執行長基辛格(Pat Gelsinger)。(圖/達志影像/美聯社)記者高兆麟/綜合報導根據外媒金融時報報導,去年年底被迫卸任英特爾執行長的基辛格表示,儘管台積電承諾在美國投資 1000 億美元建立先進製造廠,但這無助於美國恢復其在晶片製造業的全球領先地位。不到一個月前,川普才稱讚台積電的投資是將最先進半導體生產帶回美國的重要里程碑。基辛格表示,如果美國沒有研發,美國就不會擁有半導體領域的領導地位。台積電的所有研發工作都在台灣,他們還沒有宣布要轉移這些工作。不過,基辛格也補充說,川普總統的關稅威脅至少對美國有利,因為它為台積電等晶片製造商提供了更多動力在美國設立工廠。去年年底基辛格離職被廣泛視為公司對其複雜扭虧為盈計畫的否定,該計畫包括試圖重建英特爾的製造基地。本月初被任命的繼任者陳立武則尚未制定策略。這位英特爾前執行長不願透露他是否與英特爾董事們因戰略問題發生爭執,但他表示,在實施五年計畫不到四年的時間裡,他就失去了董事們的信任。他說,當董事會做出方向性改變時,這五年多的時間並還沒有完成。台積電表示,其計畫在美國進行的開發工作只是其已投入生產的製程技術,核心研發仍將留在台灣。基辛格對此表示,除非你在美國設計下一代技術,否則美國就沒有領導地位。
關鍵字:
基辛格
﹑ 英特爾
分享給朋友:追蹤我們:※本文版權所有,非經授權,不得轉載。[ETtoday著作權聲明]※經濟部投資審議會26日召開第18次會議,會中計核准重大投資案件計8件,包括2件僑外投資、4件對外投資、2件對中國投資,其中,台積電(2330)基於外匯避險成本考量,增資英屬維京群島 TSMC GLOBAL LTD.百億美元也過關。2025-03-27 15:30國發會今(27)日公布2月景氣概況,2月景氣對策信號綜合判斷分數為37分,月增2分,燈號續呈黃紅燈。其中,製造業銷售量指數、批發業營業額因AI需求強勁轉為紅燈,惟加班工時部分受春節因素干擾,以及逢年後服務消費淡季等影響轉為綠燈;領先指標及同時指標續呈上升,顯示當前國內景氣延續溫和成長態勢,仍須密切關注後續變化。2025-03-27 16:17SEMI 國際半導體產業協會於今 (27) 日公布的最新一季全球晶圓廠預測報告(World Fab Forecast)中指出,2025 年全球用於前端設施的晶圓廠設備支出自 2020 年以來連續六年增長,較去年同比上升 2%,來到 1,100 億美元。
2025-03-27 14:35美國總統川普週三(26)日表示,針對「所有非美國製造的汽車」徵收25%的關稅,造成美股4大指數收黑,今(27)日台股重挫300多點,22000點失守,投資專家建議,川普發起關稅戰,恐怕引來報復關稅,在4月中旬之前,關稅利空尚未消化完畢之後,投資人稍安勿躁,宜採取保守、觀望。2025-03-27 14:33北區國稅局今(27)日分享房地合一稅罕見核課案例。小莊(化名)與好友小陳(化名)協議將手中近2000萬元房地產等價交換,想不到小陳申報房地合一稅應納稅金為「0」,而自認沒有金流的小莊未申報房地合一稅,遭國稅局抓出漏稅54萬,連補帶罰課75.6萬元稅金。2025-03-27 14:09COMPUTEX演講嘉賓再曝光!IC設計大廠聯發科(2454)執行長蔡力行將以「從邊緣AI到雲端AI的願景」為題,在COMPUTEX 2025發表主題演講,該演講將於展覽開幕第一天5月20日上午11:00於台北南港展覽館2館7樓舉行。
2025-03-27 13:41美國總統川普突然宣布對非美製汽車加徵25%關稅,金管會證期局局長黃厚銘今(27)日指出,上千家上市公司中,有22家認為具有重大影響。2025-03-27 13:32繼長江存儲和SanDisk宣布漲價後,美光也跟進調高產品價格,營運前景樂觀,相關概念股表現亮眼。其中,記憶體大廠旺宏傳出捷報,旗下NOR Flash獨家打入輝達GB300供應鏈,帶動其股價今日飆漲逾8%,上攻至最高23.3元,成交量更破10萬張。
2025-03-27 13:32電價審議會將於明(28)日舉行,傳出電價平均調漲6%至8%、但可能會有「緩衝期」,對此,台電董事長曾文生今在節目中表示,過去確實有發生過「電價延後調漲、暫時不做決定」的緩衝期,但對於今年會怎麼做,他真的不知道,還是要等電價審議會拍板。2025-03-27 11:42本土投信第一檔台股主動式ETF要來了!主動式投資專家統一投信將推出「統一台股增長主動式ETF」,已取得基金核准函,預計5/7~5/9開始募集繳款,每股發行價10元,將於4/21起舉辦10場投資說明會與投資人面對面。2025-03-27 15:57一鍵開聽!解放雙手雙眼,隨時隨地掌握新聞,輕鬆接收最新消息!做工哥扛債、木屐當典物,當鋪不只是交易,更是人生百態的縮影!全台好房隨手可得,即賞屋提供即時看房資訊與專業分析,省時省力,輕鬆找到完美家!ETtoday攝影棚提供完整設施與高品質服務,提供創作者最佳支援,滿足你各種拍攝需求!想提升技能卻沒時間?專業師資精心設計每門課程,讓你隨時隨地都可以學習!點擊右上角的星星追蹤ETtoday,讓你一手掌握最即時的時事焦點,輕鬆成為話題大師!
用for
迴圈一次做完所有連結,並轉成pandas data frame
newdf = []
for title_click in news:
title = title_click.get_text()
url = title_click.find("a").get("href")
res = requests.get(url)
soup = BeautifulSoup(res.text, "html.parser")
news_full = soup.select("p")
full_text = ""
for news_para in news_full:
full_text = full_text + news_para.get_text()
add_news = pd.DataFrame({"title":[title],"content":[full_text]})
newdf.append(add_news)
newdf_pd=pd.concat(newdf)
newdf_pd
title | content | |
---|---|---|
0 | 聯合新聞網20 小時前轉折點到了? 台積電出現1,043元盤後鉅額交易 | 台股26日再度開高走低,台積電(2330)尾盤被大單摜壓,終場下跌10元收980元。不過,根... |
0 | ETtoday財經雲6 小時前台積電千億美元投資 英特爾前執行長基辛格:難重振美國晶片業 | ▲英特爾前執行長基辛格(Pat Gelsinger)。(圖/達志影像/美聯社)記者高兆麟/綜... |
0 | MSN4 小時前季辛格: 台積電投資不會讓美國重返晶片龍頭 | |
0 | 奇摩股市7 小時前川普要收汽車關稅!台股跌逾300點、失守22000點 台積電挫21元至959元 | 美國總統川普準備徵收汽車關稅,美股主要指數全數下跌,台積電重挫4.09%,台積電台北現股今(... |
0 | 工商時報6 小時前台積電擴大投資亞歷桑那鳳凰城富人區房價年漲逾三成- 房市 | 如果您看到這個頁面,表示您的網路已遭到停止訪問本網站的權利。本站基於資訊安全以及保護網站內容... |
0 | 中央社 CNA1 天前日經亞洲:台積電擴大對美投資不可避免但有風險| 政治 |
title | content | |
---|---|---|
0 | 聯合新聞網20 小時前轉折點到了? 台積電出現1,043元盤後鉅額交易 | 台股26日再度開高走低,台積電(2330)尾盤被大單摜壓,終場下跌10元收980元。不過,根... |
0 | ETtoday財經雲6 小時前台積電千億美元投資 英特爾前執行長基辛格:難重振美國晶片業 | ▲英特爾前執行長基辛格(Pat Gelsinger)。(圖/達志影像/美聯社)記者高兆麟/綜... |
0 | MSN4 小時前季辛格: 台積電投資不會讓美國重返晶片龍頭 | |
0 | 奇摩股市7 小時前川普要收汽車關稅!台股跌逾300點、失守22000點 台積電挫21元至959元 | 美國總統川普準備徵收汽車關稅,美股主要指數全數下跌,台積電重挫4.09%,台積電台北現股今(... |
0 | 工商時報6 小時前台積電擴大投資亞歷桑那鳳凰城富人區房價年漲逾三成- 房市 | 如果您看到這個頁面,表示您的網路已遭到停止訪問本網站的權利。本站基於資訊安全以及保護網站內容... |
0 | 中央社 CNA1 天前日經亞洲:台積電擴大對美投資不可避免但有風險| 政治 |
requests.get(網址)
BeautifulSoup(下載網頁.text, "html.parser")
find(tag名稱)
, select(css條件)
get_text()
, get(屬性名稱)
requests.get(網址)
BeautifulSoup(下載網頁.text, "html.parser")
find(tag名稱)
, select(css條件)
get_text()
, get(屬性名稱)
open(檔案名稱)
開啟檔案檔案.writelines(資料)
寫入內容檔案.writelines(資料)
的資料可以是列表open(檔案名稱)
開啟檔案檔案.write(資料)
寫入內容檔案.write(資料)
的資料必須是文字使用pandas
Data frame物件中的.to_csv(檔名)
儲存檔案。
使用pandas
Data frame物件中的.to_json(檔名)
儲存檔案。
DataFrame中一定要有index
鄉鎮市區 | 交易標的 | 土地位置建物門牌 | 土地移轉總面積平方公尺 | 都市土地使用分區 | 非都市土地使用分區 | 非都市土地使用編定 | 交易年月日 | 交易筆棟數 | 移轉層次 | ... | 總價元 | 單價元平方公尺 | 車位類別 | 車位移轉總面積平方公尺 | 車位總價元 | 備註 | 主建物面積 | 附屬建物面積 | 陽台面積 | 電梯 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 新竹市 | 土地 | 明湖段840地號 | 18.74 | NaN | 山坡地保育區 | 農牧用地 | 1121101 | 土地1建物0車位0 | NaN | ... | 150000 | 8004.0 | NaN | 0.00 | 0 | NaN | 0.00 | 0.00 | 0.00 | 無 |
1 | 新竹市 | 土地 | 新莊段198地號 | 42.95 | NaN | NaN | NaN | 1121101 | 土地12建物0車位0 | NaN | ... | 4576000 | 106542.0 | NaN | 0.00 | 0 | 親友、員工、共有人或其他特殊關係間之交易; | 0.00 | 0.00 | 0.00 | 無 |
2 | 新竹市 | 房地(土地+建物) | 新竹市新竹市光華街95巷3號5樓之3 | 6.72 | 住 | NaN | NaN | 1121101 | 土地1建物1車位0 | 五層 | ... | 3630000 | 81665.0 | NaN | 0.00 | 0 | NaN | 31.62 | 0.00 | 3.74 | 有 |
3 | 新竹市 | 土地 | 南門段四小段177-25地號 | 29.67 | 都市:其他:道路用地 | NaN | NaN | 1121103 | 土地1建物0車位0 | NaN | ... | 1316221 | 44362.0 | NaN | 0.00 | 0 | 包含公共設施保留地用地; | 0.00 | 0.00 | 0.00 | 無 |
4 | 新竹市 | 土地 | 東山段一小段189-11地號 | 357.38 | NaN | NaN | NaN | 1121107 | 土地1建物0車位0 | NaN | ... | 5038989 | 14100.0 | NaN | 0.00 | 0 | 協議價購; | 0.00 | 0.00 | 0.00 | 無 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2864 | 新竹市 | 房地(土地+建物)+車位 | 新竹市新竹市埔頂三路32號十八樓之9 | 6.53 | 商 | NaN | NaN | 1080326 | 土地1建物1車位1 | 十八層 | ... | 7360000 | 77553.0 | 坡道平面 | 28.88 | 1200000 | 預售屋、或土地及建物分件登記案件; | 45.68 | 1.78 | 4.48 | 有 |
2865 | 新竹市 | 房地(土地+建物)+車位 | 新竹市新竹市埔頂三路36號二十八樓之10 | 6.44 | 商 | NaN | NaN | 1080324 | 土地1建物1車位1 | 二十八層 | ... | 6980000 | 75472.0 | 坡道平面 | 24.86 | 1100000 | 預售屋權利轉售,讓渡日期:110年05月13日,權利買賣契約成交價格980萬元。預售屋、或土... | 44.84 | 1.78 | 4.33 | 有 |
2866 | 新竹市 | 房地(土地+建物)+車位 | 新竹市新竹市埔頂三路2號 | 20.23 | 商 | NaN | NaN | 1080317 | 土地1建物1車位2 | 一層,二層 | ... | 55280000 | 222072.0 | 坡道平面 | 57.76 | 2700000 | 預售屋權利轉讓,讓渡日期:108年07月13日,權利買賣契約成交價 5880 萬元。預售屋、... | 170.24 | 0.00 | 0.00 | 有 |
2867 | 新竹市 | 房地(土地+建物)+車位 | 新竹市新竹市埔頂三路66號 | 19.96 | 商 | NaN | NaN | 1080317 | 土地1建物1車位2 | 一層,二層 | ... | 52180000 | 212854.0 | 坡道平面 | 57.76 | 2700000 | 預售屋、或土地及建物分件登記案件; | 167.16 | 0.00 | 0.00 | 有 |
2868 | 新竹市 | 房地(土地+建物)+車位 | 新竹市新竹市埔頂三路68號 | 20.23 | 商 | NaN | NaN | 1080324 | 土地1建物1車位2 | 一層,二層 | ... | 53280000 | 213625.0 | 坡道平面 | 57.76 | 2700000 | 預售屋、或土地及建物分件登記案件; | 170.24 | 0.00 | 0.00 | 有 |
2869 rows × 31 columns
dumps
, dump
:儲存loads
, load
:讀取from bs4 import BeautifulSoup
import requests
import pandas as pd
# step 1 download url
res = requests.get("https://www.ptt.cc/bbs/Tech_Job/index.html")
# step 2 parse html
soup = BeautifulSoup(res.text, "html.parser")
# step 3 select tags/css
title_tags = soup.select(".title a")
print(title_tags)
# step 4 get the data
title_list=[]
for title in title_tags:
title_list.append(title.get_text())
[<a href="/bbs/Tech_Job/M.1742982154.A.2D0.html">Fw: [罷免板主] Tech_Job</a>, <a href="/bbs/Tech_Job/M.1742994212.A.8BD.html">[面試] 溢泰實業</a>, <a href="/bbs/Tech_Job/M.1742996077.A.4F3.html">[新聞]馬斯克的機器人發財夢,可能會被中國攔胡</a>, <a href="/bbs/Tech_Job/M.1742998916.A.24D.html">[心得] GG和M勝負已定</a>, <a href="/bbs/Tech_Job/M.1742999269.A.C2A.html">[新聞] 半導體訂單旺 首季製造業估雙位數成長</a>, <a href="/bbs/Tech_Job/M.1743032993.A.746.html">[新聞] 浪潮集團在台子公司 數字雲端近年高薪徵</a>, <a href="/bbs/Tech_Job/M.1743033191.A.26A.html">[新聞] 內部重組持續 戴爾今年裁減10%人力</a>, <a href="/bbs/Tech_Job/M.1743048399.A.C72.html">[請益] 群創離職後的選擇?</a>, <a href="/bbs/Tech_Job/M.1743048724.A.2CA.html">[新聞] 英特爾前CEO基辛格:台積電加碼投資美國 </a>, <a href="/bbs/Tech_Job/M.1743051366.A.BE3.html">[新聞]OpenAI 成本負擔大 現金流量估2029年才轉正</a>, <a href="/bbs/Tech_Job/M.1393646135.A.A28.html">[公告] Tech_Job板板規 2022.05.26更新</a>, <a href="/bbs/Tech_Job/M.1410062073.A.1B6.html">[公告] 置底 檢舉/推薦 文章</a>, <a href="/bbs/Tech_Job/M.1425268790.A.15E.html">[公告] 如何消除退文 轉自Ask板</a>, <a href="/bbs/Tech_Job/M.1585618843.A.D43.html">[情報] 薪資查詢平台</a>, <a href="/bbs/Tech_Job/M.1653574616.A.A15.html">[公告] 板規十五 offer請益文 m文解除申請</a>]
writelines(內容)
pandas_df.to_csv(檔名)
pandas_df.to_json(檔名)