爬取并绘制我国GDP1990~2016数据图
绘制图形所需的数据源通常是不固定的,比如,有时我们会需要从网页抓取,也可能需从文件或数据库中获取。利用网页数据抓取技术,把我国1990年到2016年的GDP数据抓取出来,再利用Matplotlib进行绘图显示。
经搜索发现,http://value500.com/M2GDP.html网页中有我们所需数据。
通过浏览器的开发者工具,查看源码可以发现:年份数据位于table中第1个td标签中,gdp数据位于表格中第3个td标签中。
import matplotlib.pyplot as plt # 导入绘图模块,重命名为plt
import requests # 导入网页内容抓取功能包
from bs4 import BeautifulSoup as bs # 导入网页解析模块,重命名为bs
from pylab import * #导入pylab包
rcParams['font.sans-serif'] = ['SimHei'] # 支持简体中文
year = [] # 横坐标列表
gdp = [] # 纵坐标列表
url = "http://value500.com/M2GDP.html" # 设置要在哪个网页抓取数据
content = requests.get(url) # 获取网页内容
content.encoding = 'utf-8' # 转为utf-8编码
content1 = content.text # 获取网页内容的text部分
parse = bs(content1, "html.parser") # 进行html解析
data1 = parse.find_all("table") # 进行html解析
rows = data1[19].find_all("tr")
i = 0
for row in rows:
cols = row.find_all("td") # 把行数据存入cols变量
if(len(cols) > 0 and i == 0): # 如果不是第一行,则控制变量加1
i += 1
else: # 如果不是第一行,则存至绘图列表
year.append(cols[0].text[:-2]) # 取的年份数据(数据的最后两个字符不是数值,所以要去除)并写入图形的year轴
gdp.append(cols[2].text) # 把GDP值存入GDP轴
plt.plot(year, gdp, linewidth=2.0) # 绘制图形,线宽为2
plt.title("1990~2016年度我国GDP") # 设置图形标题
plt.xlabel("年度") # 设置x轴标题
plt.ylabel("GDP(亿元)") # 设置y轴标题
plt.show() # 显示所绘图形