使用pyquery解析HTML的table存成DataFrame
pip install pyquery
pip install htmltable-df
營業收入 | 累計營業收入 | 備註 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
公司 代號 |
公司名稱 | 當月營收 | 上月營收 | 去年當月營收 | 上月比較 增減(%) |
去年同月 增減(%) |
當月累計營收 | 去年累計營收 | 前期比較 增減(%) |
|
1101 | 台泥 | 10,757,628 | 11,539,982 | 7,858,569 | -6.77 | 36.89 | 57,500,244 | 45,893,851 | 25.28 | - |
1102 | 亞泥 | 7,549,925 | 7,698,165 | 5,331,442 | -1.92 | 41.61 | 39,010,235 | 28,812,149 | 35.39 | - |
1103 | 嘉泥 | 172,927 | 185,856 | 143,629 | -6.95 | 20.39 | 1,000,927 | 1,058,885 | -5.47 | - |
1104 | 環球水泥 | 337,575 | 426,170 | 318,948 | -20.78 | 5.84 | 2,314,855 | 2,159,764 | 7.18 | - |
1108 | 幸福水泥 | 276,298 | 294,581 | 243,699 | -6.20 | 13.37 | 1,684,245 | 1,761,992 | -4.41 | - |
1109 | 信大水泥 | 577,408 | 625,561 | 418,868 | -7.69 | 37.84 | 2,809,558 | 2,317,812 | 21.21 | - |
1110 | 東泥 | 119,405 | 142,543 | 107,913 | -16.23 | 10.64 | 792,195 | 684,515 | 15.73 | - |
合計 | 19,791,166 | 20,912,858 | 14,423,068 | -5.36 | 37.21 | 105,112,259 | 82,688,968 | 27.11 |
from htmltable_df.extractor import Extractor
extractor = Extractor(html)
extractor.df()
print out:
公司 代號 | 公司名稱 | 營業收入_當月營收 | 營業收入_上月營收 | 營業收入_去年當月營收 | 營業收入_上月比較增減(%) | 營業收入_去年同月增減(%) | 累計營業收入_當月累計營收 | 累計營業收入_去年累計營收 | 累計營業收入_前期比較增減(%) | 備註 | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1101 | 台泥 | 10757628 | 11539982 | 7858569 | -6.77 | 36.89 | 57500244 | 45893851 | 25.28 | - |
1 | 1102 | 亞泥 | 7549925 | 7698165 | 5331442 | -1.92 | 41.61 | 39010235 | 28812149 | 35.39 | - |
2 | 1103 | 嘉泥 | 172927 | 185856 | 143629 | -6.95 | 20.39 | 1000927 | 1058885 | -5.47 | - |
3 | 1104 | 環球水泥 | 337575 | 426170 | 318948 | -20.78 | 5.84 | 2314855 | 2159764 | 7.18 | - |
4 | 1108 | 幸福水泥 | 276298 | 294581 | 243699 | -6.20 | 13.37 | 1684245 | 1761992 | -4.41 | - |
5 | 1109 | 信大水泥 | 577408 | 625561 | 418868 | -7.69 | 37.84 | 2809558 | 2317812 | 21.21 | - |
6 | 1110 | 東泥 | 119405 | 142543 | 107913 | -16.23 | 10.64 | 792195 | 684515 | 15.73 | - |
7 | 合計 | 合計 | 19791166 | 20912858 | 14423068 | -5.36 | 37.21 | 105112259 | 82688968 | 27.11 |
# 也可以指定到第2列都是header 結果一樣
extractor.df(header=2)