源码

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