如何爬取中国近十年的GDP,并写入csv文件?

怎样爬取中国近十年的gdp,看看中国经济的变化,进而做出可视化图呢?这里我们先教大家第一步,获取数据,数据是基础。

首先我们要选好网址,这里选的是快易理财网:“https://www.kylc.com/stats/global/yearly_per_country/g_gdp/chn.html”。

导入相应的库

import urllib.request
from urllib.error import HTTPError, URLError
from bs4 import BeautifulSoup
import ssl
import csv

处理异常,返回html

def exception_handling(url):try:# 信任所有Https的安全证书ssl._create_default_https_context = ssl._create_unverified_contextreq = urllib.request.Request(url)req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0")response = urllib.request.urlopen(req)html = response.read().decode('utf-8')return htmlexcept HTTPError as e1:print(e1.code)except URLError as e2:print("The server can't connect!")print('Reason:{}'.format(e2.reason))else:print('程序出错')

爬取数据

这里要对应网站源码去查看,获取对应的div,table下的数据

def get_data(html):# 定义一个空列表,存放数据的属性(头部标题)data_header = []# 定义一个空列表,存放数据data_detail = []# 是指定Beautiful的解析器为html.parsersoup = BeautifulSoup(html, 'html.parser')# 得到最小的那个类标签以内的htmltable_divs = soup.find('div', {'class': 'table-responsive'})# 得到最小类下的tabletable_divs1 = table_divs.find('table', {'class': 'table'})# 得到table下的theadthead = table_divs1.find('thead')# 得到thead下的thths = thead.find_all('th')for th in ths:header = th.text.strip()data_header.append(header)# 得到table下的tbodytbody = table_divs1.find('tbody')# 得到tbody下的tdtds = tbody.find_all('td')# 获取2010-2019年的数据for td in tds[0:30]:if td !=None:detail = td.text.strip('')data_detail.append(detail)else:pass# 返回值return (data_header, data_detail)

当然如果大家想要更多年的数据,那去掉tds[0:30]的区间即可。

将数据写入文件

def data_write(data_h, data_d):with open('china_data1_0.csv', mode='w', encoding='utf-8',newline='') as f:# 基于文件对象构建csv写入对象csv_writer = csv.writer(f)# 先将头部写入列表csv_writer.writerow(data_h)# 为保证数据格式,将列表分割好for i in range(0, len(data_d), 3):# 去除空行if i != '':csv_writer.writerow(data_d[i:i+3])# print('爬取完成,请到china_data.csv查看')

主函数部分

url = "https://www.kylc.com/stats/global/yearly_per_country/g_gdp/chn.html"html = exception_handling(url)if html != None:get_data(html)data_h, data_d = get_data(html)data_write(data_h, data_d)

总结

以上便是全部内容,数据出来会发现,数据是原始的数据,如下:
年份,中国,GDP(美元),占世界%
2019,“14.34万亿 (14,342,902,842,915)”,16.3550%
2018,“13.89万亿 (13,894,817,110,036)”,16.0900%
2017,“12.31万亿 (12,310,408,652,423)”,15.1552%
2016,“11.23万亿 (11,233,277,146,512)”,14.7156%
2015,“11.06万亿 (11,061,552,790,044)”,14.7098%
2014,“10.48万亿 (10,475,682,846,632)”,13.1851%
2013,“9.57万亿 (9,570,405,758,739)”,12.3805%
2012,“8.53万亿 (8,532,230,724,141)”,11.3542%
2011,“7.55万亿 (7,551,500,425,597)”,10.2814%
2010,“6.09万亿 (6,087,164,527,421)”,9.2072%
下一链接我们将会讲述,如何将数据规范化,变成我们可用的数据。感谢大家阅读菜鸟远远的博客。喜欢的小伙伴收藏加点赞叭。

如何爬取中国近十年的GDP,并写入csv文件?相关推荐

  1. 数据可视化(python)----中国近十年就业GDP对比

    前言必读 读者手册(必读)_云边的快乐猫的博客-CSDN博客 中国近十年就业GDP的发展状况 一 二 三 四 总分 一.选题的背景介绍(15分) 为什么要选择该主题?要达到的数据分析目标是什么?从社会 ...

  2. 爬虫实战4:爬取猫眼电影排名Top100的详细数据保存到csv文件

    申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 猫眼电影 完整代码 运行结果 猫眼电影 完整代码 import time import requests import re i ...

  3. python爬取当当网的书籍信息并保存到csv文件

    python爬取当当网的书籍信息并保存到csv文件 依赖的库: requests #用来获取页面内容 BeautifulSoup #opython3不能安装BeautifulSoup,但可以安装Bea ...

  4. Python爬虫实战之一 - 基于Requests爬取拉勾网招聘信息,并保存至本地csv文件

    Python爬虫实战之二 - 基于Requests抓取拉勾网招聘信息 ---------------readme--------------- 简介:本人产品汪一枚,Python自学数月,对于小白,本 ...

  5. python爬取东方财富网资金流向数据(在本地生成csv文件)

    今天我们来试着用python爬取东方财富网资金流向的表格数据. 第一步:程序及应用的准备 首先我们需要安装selenium库,使用命令pip install selenium;然后我们需要下载对应的c ...

  6. BS4爬取电影天堂的下载地址并保存至csv文件

    思路:BS4爬取电影天堂中最新电影名称及下一级链接中的下载地址,结果保存至csv文件 存在问题及需要完善(恳请各位大神提供帮助): (1)采集结果中的下载链接存在乱码: (2)代码需要优化. # co ...

  7. 爬取去哪儿网旅游数据并且保存为csv文件

    参考用Python分析元旦旅游热门城市,告诉你哪些景点性价比更高''一文,我们可以到去哪儿网站上爬取某个城市,比如厦门的旅游数据,并且在此基础上进行数据分析.下面简单总结一下爬取的过程. 一.获取js ...

  8. 爬取安居客的信息,并保存到csv文件中。

    这里说明下不要用xpath进行爬取,因为会被封. # 引入包 import requests from bs4 import BeautifulSoup import time import csv# ...

  9. BS4爬取电影天堂的下载地址并保存至csv文件(一)

    修改: (1)修改了结果中存在乱码的问题: # coding=utf-8 import requests from bs4 import BeautifulSoup import time impor ...

  10. Scrapy 简单爬取厨房网站菜谱清单,并将结果保存为csv文件

    链接:http://www.xiachufang.com/explore/ from scrapy import Request from scrapy.spiders import Spidercl ...

最新文章

  1. 10个Java 8 Lambda表达式经典示例
  2. C# 打好基础图文详解
  3. winxp一键锁定计算机,WinXP下锁定计算机的3种方法
  4. vs设计窗口不见了_VS厂欧米茄海马300系列女王密使腕表评测
  5. 房产估值软件测试怎么报风险,基于风险的测试策略
  6. atoi 原来将字符串02002xzm100转换为int以后是2002
  7. mybatis 报错. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #2 wit
  8. 低代码平台- Intellij IDEA 插件开发
  9. ssq红蓝号码未出现间隔排序选号的回归计算中间率(红号出现3个以上再输出)
  10. 微信公众号模板消息推送,中文乱码
  11. 适合我的前端学习路线(学习前端不迷路)
  12. mysql 主从服务-主从复制数据一致性校验出现的问题
  13. 中国造车要把百年车企按在地上打?你别说,我看有戏。
  14. 芯片引脚断了,没关系,剥开去盖后飞线还能用......
  15. 节点表征学习[GCN、GAT]
  16. 2021年起重机械指挥最新解析及起重机械指挥模拟考试
  17. geteditor p 取消自动_进自助洗车机之前请先确认自动驻车和电子手刹的状态哦
  18. java做一个远程桌面程序
  19. php短信接口调用网站,PHP网站短信接口函数示例
  20. 基于Linux python2.X与python3.X默认版本切换

热门文章

  1. ​24小时企业级微信小程序全套开发视频教程
  2. 【Android -- 开源库】BRVAH 的基本使用
  3. python 解决无法更新pip问题
  4. 内点法介绍(Interior Point Method)
  5. 多智能体强化学习(一) IQL、VDN、QMIX、QTRAN算法详解
  6. Kubernetes tutorial - K8S 官方入门教程 中文翻译
  7. JS 在线预览Word,Excel
  8. vue如何集成阿里云视频服务组件(aliplayer)视频功能是使用el-dialog 弹出aliplayer播放
  9. 外星人 Alienware X14 评测
  10. 2020年计算机设计大赛参赛回顾与总结