吴裕雄--天生自然python学习笔记:爬取我国 1990 年到 2017年 GDP 数据并绘图显示
绘制图形所需的数据源通常是不固定的,比如,有时我们会需要从网页抓取,
也可能需从文件或数据库中获取。
利用抓取网页数据技术,把我国
1990 年到 2016 年的 GDP 数据抓取出来 ,再利用 MatplotUb 进行绘图显示 。
经搜索发现, http://value500.com/M2GDP.html 网页中有我们所需数据 。

将鼠标移到表格每一行的“年份”处井右击,在弹出的快捷菜单中选择“检查”
选项。


Chrome 会打开网页开发工具,并自动显示鼠标位置的 html 程序代码,我们可根
据 html 代码来抓取表格数据 : 年份数据位于 table 中 第 1 个 td 标签中, gdp 数据们于
表格的中第 3 个 td 标签中。
爬取并绘制我国 GDP1990~2016 数据图
import requests #导入网页内容抓取包
import matplotlib.pyplot as plt #导入绘图模块,重命名为plt from bs4 import BeautifulSoup as bs #导入网页解析模块,重命名为bs
from pylab import rcParams #导入pylab包 rcParams['font.sans-serif'] = ['SimHei'] #让matplotlib支持简体中文
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") #获取所有表元素
rows = data1[19].find_all("tr") #取出包含所需数据的表(网页第20个表)
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~2017年度我国GDP") #设置图形标题
plt.xlabel("年度") #设置x轴标题
plt.ylabel("GDP(亿元)") #设置y轴标题
plt.show() #显示所绘图形 print(year)
print(gdp)

吴裕雄--天生自然python学习笔记:爬取我国 1990 年到 2017年 GDP 数据并绘图显示的更多相关文章
- 吴裕雄--天生自然python学习笔记:python用 Bokeh 模块绘制我国 GDP 数据统计图
现在我们把我国 1990 年到 2017 年的 GDP 数据抓取出 来,井用 Bokeh 绘 出散点统计图 . 由网页爬取所需数据,并用 Bokeh 绘制散点图 . import requests # ...
- 吴裕雄--天生自然python学习笔记:python 创建和操作Firebase实时数据库
Fire base 是专为移动开发提供的后端服务平台, Firebase 数据库与传统数据库不同,它不是用数据表来存储数据, 而是用 Key . Value 的字典型结构来存储数据,所以它不仅 是轻量 ...
- 吴裕雄--天生自然python学习笔记:python爬虫PM2.5 实时监测显示器
PM2.5 对人体的健康影响很大,所以空气中的 PM2.5 实时信息受到越来越多的关注. Python 的 Pandas 套件不但可以自动读取网页中的表格 数据 , 还可对数据进行修改.排序等处理,也 ...
- 吴裕雄--天生自然python学习笔记:pandas模块导入数据
有时候,手工生成 Pandas 的 DataFrame 数据是件非常麻烦的事情,所以我们通 常会先把数据保存在 Excel 或数据库中,然后再把数据导入 Pandas . 另 一种情况是抓 取网页中成 ...
- 吴裕雄--天生自然python学习笔记:pandas模块DataFrame 数据的修改及排序
import pandas as pd datas = [[65,92,78,83,70], [90,72,76,93,56], [81,85,91,89,77], [79,53,47,94,80]] ...
- 吴裕雄--天生自然python学习笔记:python 用pyInstaller模块打包文件
要想在没有安装 Python 集成环境的电脑上运行开发的 Python 程序,必须把 Python 文件打包成 .exe 格式的可执行 文件. Python 的打包工作 PyInstaller 提供了 ...
- 吴裕雄--天生自然python学习笔记:python 文件批量查找
在多个文本文件中查找 我们首先来学习文本文件的查找字符 . 我们通过 os.walk 扩大查找范围, 查找指定目录和子目录下的文件. 应用程序总览 读取 当 前目录及子目录下的所有 PY 和 txt ...
- 吴裕雄--天生自然python学习笔记:pandas模块强大的数据处理套件
用 Python 进行数据分析处理,其中最炫酷的就属 Pa ndas 套件了 . 比如,如果我 们通过 Requests 及 Beautifulsoup 来抓取网页中的表格数据 , 需要进行较复 杂的 ...
- 吴裕雄--天生自然python学习笔记:python 用pygame模块动画一让图片动起来
动画是游戏开发中不可或缺的要素,游戏中的角色只有动起来才会拥有“生命”, 但动画处理也是最让游戏开发者头痛的部分.Pygame 包通过不断重新绘制绘图窗口,短短几行代码就可以让图片动起来! 动画处理程 ...
随机推荐
- Emoji表情符号兼容方案
Emoji表情符号兼容方案 一 什么是Emoji emoji就是表情符号:词义来自日语(えもじ,e-moji,moji在日语中的含义是字符) 表情符号现已普遍应用于手机短信和网络聊天软件. em ...
- IO流处理文件读取到字节数组,再从字节数组读取到文件,Java实现
package cn.zhang.io; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; impo ...
- java链接redis服务器
1.首先你需要下载驱动包jedis.jar确保下载最新驱动包. 2.public class RedisUtil { //服务器IP地址 private static String ADDR = &q ...
- ZJNU 2353 - UNO
大模拟,但是题目好像有些地方表述不清 根据UNO在初中曾被别人虐了很久很久的经历 猜测出了原本的题意 本题中的+2虽然有颜色,但是也可以当作原UNO游戏中的+4黑牌 即在某人出了+2后,可以出不同颜色 ...
- 1. react 基础 简介 及 环境搭建
一.简介 由 Facebook 推出 2013 年 开源 的 函数式编程的 使用人数最多的 前端框架 拥有健全的文档与完善的社区 ( 官网 ) react 16 称为 React Fiber ( 底层 ...
- dockerfile保留字指令
FROM 基础镜像,当前新镜像是基于哪个镜像的 MAINTAINER 镜像维护者的姓名和邮箱地址 RUN 容器构建时运行的命令 EXPOSE 当前容器对外暴露的端口 WORKDIR 指定在创建容器后, ...
- LA 3882 经典约瑟夫环问题的数学递推解法
就是经典约瑟夫环问题的裸题 我一开始一直没理解这个递推是怎么来的,后来终于理解了 假设问题是从n个人编号分别为0...n-1,取第k个, 则第k个人编号为k-1的淘汰,剩下的编号为 0,1,2,3. ...
- 设计模式讲解2:static proxy和decorator的不同点
声明:迁移自本人CSDN博客https://blog.csdn.net/u013365635 在常见的23种设计模式中,static proxy和decorator在代码结构上是特别相似的.那它们的不 ...
- LeetCode——787. K 站中转内最便宜的航班
有 n 个城市通过 m 个航班连接.每个航班都从城市 u 开始,以价格 w 抵达 v. 现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到从 src 到 dst 最多经过 ...
- Java之同步方法处理继承Thread类的线程安全问题
/** * 使用同步方法处理继承Thread类的方式中的线程安全问题 * */class Window4 extends Thread { private static int ticket = 10 ...