源码
1 | import requests |
2 | import re |
3 | from bs4 import BeautifulSoup |
4 | #向网站发送request请求获取网页内容 |
5 | url="http://www.mot.gov.cn/shuju/" |
6 | headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'} |
7 | html=requests.get(url,headers=headers).text |
8 | #用BeautifulSoup库解析html |
9 | soup=BeautifulSoup(html,'html.parser') |
10 | #通过iframe标签找到所有表格的链接 |
11 | elx=soup.find_all('iframe') |
12 | #获取各个表格的标题 |
13 | et=soup.find_all(id='myTabsapp')[-1].find_all('li') |
14 | k=0 |
15 | for ev in elx: |
16 | #创建并打开对应的文本文件写入数据 |
17 | f=open("%s.txt"%et[k].get_text(),"w") |
18 | #iframe标签中src中的值即为表格的url |
19 | eurl=ev['src'] |
20 | #获取表格网页内容 |
21 | ehtml=requests.get(eurl).text |
22 | #解析 |
23 | hsp=BeautifulSoup(ehtml,'html.parser') |
24 | #提取表格中的数据 |
25 | ttr=hsp.table.find_all('tr') |
26 | for etr in ttr: |
27 | li=etr.get_text().split() |
28 | for s in li: |
29 | ts='{0:{1}<{2}}\t'.format(s,' ',50-len(s.encode('gbk'))+len(s)) |
30 | print(ts,end='') |
31 | f.write(ts) |
32 | print() |
33 | f.write('\n') |
34 | f.close() |
35 | k+=1 |
运行结果
1 | 年份 月份 本月中心城市客运完成量(万人次) 本月公共汽电车客运完成量(万人次) 本月轨道交通客运完成量(万人次) 本月客运轮渡客运完成量(万人次) 本月巡游出租汽车客运完成量(万人次) |
2 | 2019年 1月 550977.80 282636.50 182756.40 671.50 84913.40 |
3 | 2019年 2月 442061.90 225458.60 138665.00 652.70 77285.60 |
4 | 2019年 3月 575506.80 292731.20 198048.40 781.20 83946.00 |
5 | 2019年 4月 577269.30 299247.20 195630.50 842.00 81549.60 |
6 | 2019年 5月 581810.70 298684.70 198141.90 929.60 84054.50 |
7 | 2019年 6月 562885.00 286398.30 191754.80 918.80 83813.10 |
8 | 2019年 7月 581889.60 285679.60 210682.50 1012.00 84515.50 |
9 | 2019年 8月 565432.00 273532.50 206245.80 1054.30 84599.40 |
10 | 年份 月份 地区 本月全国港口货物吞吐量完成量(万吨) 本月外贸港口货物吞吐量完成量(万吨) 本月内贸港口货物吞吐量完成量(万吨) 本月沿海港口货物吞吐量完成量(万吨) 本月内河港口货物吞吐量完成量(万吨) 本月全国港口集装箱吞吐量完成量(万TEU) 本月全国港口旅客吞吐量完成量(万人) |
11 | 2019年 1月 全国 114129.88 37794.82 76335.06 77791.85 36338.03 2216.42 678.08 |
12 | 2019年 2月 全国 88648.92 30424.23 58224.69 62744.22 25904.70 1663.37 955.83 |
13 | 2019年 3月 全国 112503.94 35613.06 76890.88 75287.71 37216.23 2152.84 662.52 |
14 | 2019年 4月 全国 114542.14 34524.67 80017.47 75262.58 39279.55 2194.40 723.12 |
15 | 2019年 5月 全国 120190.40 36665.43 83524.97 79140.19 41050.20 2239.97 704.08 |
16 | 2019年 6月 全国 121285.53 36330.14 84955.39 79124.69 42160.84 2232.44 648.50 |
17 | 2019年 7月 全国 118365.61 36914.14 81451.48 77841.39 40524.22 2276.93 823.62 |
18 | 2019年 8月 全国 119941.14 37859.48 82081.66 78356.79 41584.34 2262.38 997.26 |
19 | 年份 月份 地区 本月公路水运建设完成量(亿元) 本月公路建设完成量(亿元) 本月水运建设完成量(亿元) 本月内河建设完成量(亿元) 本月沿海建设完成量(亿元) 本月公路水路其他建设完成量(亿元) |
20 | 2019 1月 全国 1282.28 1202.67 78.73 42.74 35.99 0.88 |
21 | 2019 2月 全国 757.82 708.26 48.67 23.77 24.89 0.89 |
22 | 2019 3月 全国 1682.14 1593.87 85.67 46.17 39.50 2.60 |
23 | 2019 4月 全国 1810.90 1705.57 101.80 51.36 50.44 3.52 |
24 | 2019 5月 全国 2004.14 1904.24 95.44 50.56 44.88 4.45 |
25 | 2019 6月 全国 2514.93 2385.62 121.64 64.94 56.70 7.67 |
26 | 2019 7月 全国 2018.26 1929.18 84.36 43.83 40.53 4.72 |
27 | 2019 8月 全国 2138.89 2030.35 81.99 44.95 37.05 26.54 |
28 | 年 月 地区 本月公路客运完成量(万人) 本月水路客运完成量(万人) 本月公路旅客周转完成量(亿人公里) 本月水路旅客周转完成量(亿人公里) 本月公路货运完成量(亿吨公里) 本月水路货运完成量(亿吨公里) 本月公路货运周转量(亿吨公里) 本月水路货物周转量(亿吨公里) |
29 | 2019年 1月 全国 106502.0843 1513.03 705.21 4.74 318985.28 57263.70 5812.27 8092.93 |
30 | 2019年 2月 全国 122061.6343 2286.73 845.42 6.43 167328.74 49404.40 2970.38 7169.90 |
31 | 2019年 3月 全国 107737.213 2085.08 754.75 5.70 333114.28 57182.55 6111.52 8053.02 |
32 | 2019年 4月 全国 105820.3581 2308.45 697.95 6.72 355968.15 59909.90 6352.49 8605.95 |
33 | 2019年 5月 全国 106668.7114 2560.95 719.31 7.30 366776.74 61781.64 6419.12 9094.35 |
34 | 2019年 6月 全国 103882.8833 2329.32 700.91 6.70 358625.93 64947.63 6538.02 8746.07 |
35 | 2019年 7月 全国 109953.3767 2514.23 770.30 7.53 362162.53 64114.97 6349.58 9071.38 |
36 | 2019年 8月 全国 110843.0195 2969.71 788.69 8.97 374668.76 64106.36 6557.69 9201.11 |