python爬取全球历年GDP数据
Ⅰ.概要
程序语言:python
第三方库:requests/parsel/pandas/openpyxl
目的:爬取1980-2021年全球GDP数据并写入excel,且涵盖全球GDP排名、国家/地区、GDP总量(美元核算)、GDP总量(人民币核算)、所属洲等信息。
Ⅱ.爬网程序(分步)
ii.i.导入第三方库
import requests
import parsel
import pandas as pd
from openpyxl import load_workbook
ii.ii.调用requests发送请求,获取响应
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36','sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="98", "Google Chrome";v="98"'}for i in range(1980, 2022):url = 'http://www.8pu.com/gdp/ranking_' + str(i) + '.html'response = requests.get(url, headers=headers)response.encoding = response.apparent_encoding
ii.iii.调用parsel的Selector对象,通过css选择器获取所需标签信息
selector = parsel.Selector(response.text)lis = selector.css('#table01')for li in lis:rank = li.css('#US_ > td.rank > font > font::text').getall()country = li.css('#US_ > td:nth-child(2) > a > font::text').getall()dollar = li.css('#US_ > td.value > font::text').getall()rmb = li.css('#US_ > td.rank_prev > font::text').getall()continent = li.css('#US_ > td.area > font > font::text').getall()
ii.iv.对提取到的标签信息进行清洗处理
rank = ','.join(rank).replace('排名第', '').split(',')dollar = ','.join(dollar).replace('$', '').split(',')rmb = ','.join(rmb).replace('¥', '').replace('亿元', '').split(',')continent = ','.join(continent).replace('国家', '').replace('州','洲').split(',')dict = {'排名': rank, '国家/地区': country, 'GDP总量(美元核算)': dollar, 'GDP总量(人民币核算)': rmb, '所属洲': continent}d = list(zip(rank, country, dollar, rmb, continent))
ii.v.打印输出,查看数据
print('\n// ' + str(i) + '年全球GDP //\n')for x1, x2, x3, x4, x5 in d:print(x1, x2, x3, x4, x5)
ii.vi.写入excel,存档
df = pd.DataFrame(d)df.to_excel('GDP' + str(i) + '.xlsx', sheet_name=str(i), encoding='gbk', index=0, header=dict)
ii.vii.设置excel表格列宽
wb = load_workbook('GDP' + str(i) + '.xlsx')ws = wb.activews.column_dimensions['A'].width = 15ws.column_dimensions['B'].width = 20ws.column_dimensions['C'].width = 25ws.column_dimensions['D'].width = 25ws.column_dimensions['E'].width = 15wb.save('GDP' + str(i) + '.xlsx')
Ⅲ.爬网程序(完整)
import requests
import parsel
import pandas as pd
from openpyxl import load_workbookheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36','sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="98", "Google Chrome";v="98"'}for i in range(1980, 2022):url = 'http://www.8pu.com/gdp/ranking_' + str(i) + '.html'response = requests.get(url, headers=headers)response.encoding = response.apparent_encodingselector = parsel.Selector(response.text)lis = selector.css('#table01')for li in lis:rank = li.css('#US_ > td.rank > font > font::text').getall()rank = ','.join(rank).replace('排名第', '').split(',')country = li.css('#US_ > td:nth-child(2) > a > font::text').getall()dollar = li.css('#US_ > td.value > font::text').getall()dollar = ','.join(dollar).replace('$', '').split(',')rmb = li.css('#US_ > td.rank_prev > font::text').getall()rmb = ','.join(rmb).replace('¥', '').replace('亿元', '').split(',')continent = li.css('#US_ > td.area > font > font::text').getall()continent = ','.join(continent).replace('国家', '').replace('州','洲').split(',')dict = {'排名': rank, '国家/地区': country, 'GDP总量(美元核算)': dollar, 'GDP总量(人民币核算)': rmb, '所属洲': continent}d = list(zip(rank, country, dollar, rmb, continent))print('\n// ' + str(i) + '年全球GDP //\n')for x1, x2, x3, x4, x5 in d:print(x1, x2, x3, x4, x5)df = pd.DataFrame(d)df.to_excel('GDP' + str(i) + '.xlsx', sheet_name=str(i), encoding='gbk', index=0, header=dict)wb = load_workbook('GDP' + str(i) + '.xlsx')ws = wb.activews.column_dimensions['A'].width = 15ws.column_dimensions['B'].width = 20ws.column_dimensions['C'].width = 25ws.column_dimensions['D'].width = 25ws.column_dimensions['E'].width = 15wb.save('GDP' + str(i) + '.xlsx')
Ⅳ.效果展示
每个excel文件单独存储一张sheet工作表:
Ⅴ.爬网程序2(完整)
import requests
import parsel
import openpyxl
import pandas as pdheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36','sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="98", "Google Chrome";v="98"'}wb = openpyxl.Workbook('GDP.xlsx')for i in range(1980, 2022):url = 'http://www.8pu.com/gdp/ranking_' + str(i) + '.html'response = requests.get(url, headers=headers)response.encoding = response.apparent_encodingselector = parsel.Selector(response.text)lis = selector.css('#table01')for li in lis:rank = li.css('#US_ > td.rank > font > font::text').getall()rank = ','.join(rank).replace('排名第', '').split(',')country = li.css('#US_ > td:nth-child(2) > a > font::text').getall()dollar = li.css('#US_ > td.value > font::text').getall()dollar = ','.join(dollar).replace('$', '').split(',')rmb = li.css('#US_ > td.rank_prev > font::text').getall()rmb = ','.join(rmb).replace('¥', '').replace('亿元', '').split(',')continent = li.css('#US_ > td.area > font > font::text').getall()continent = ','.join(continent).replace('国家', '').replace('州','洲').split(',')dict = {'排名': rank, '国家/地区': country, 'GDP总量(美元核算)': dollar, 'GDP总量(人民币核算)': rmb, '所属洲': continent}d = list(zip(rank, country, dollar, rmb, continent))print('\n// ' + str(i) + '年全球GDP //\n')for x1, x2, x3, x4, x5 in d:print(x1, x2, x3, x4, x5)name=[[u'排名',u'国家/地区',u'GDP总量(美元核算)',u'GDP总量(人民币核算)',u'所属洲']]df = pd.DataFrame(d)sheet=wb.create_sheet(index=0,title=str(i))for r in name:sheet.append(r)for rr in d:sheet.append(rr)
wb.save('GDP.xlsx')wbb =openpyxl.load_workbook('GDP.xlsx')
sheet_names=wbb.get_sheet_names()
for ii in sheet_names:ws=wbb.get_sheet_by_name(ii)ws.column_dimensions['A'].width = 15ws.column_dimensions['B'].width = 20ws.column_dimensions['C'].width = 25ws.column_dimensions['D'].width = 25ws.column_dimensions['E'].width = 15
wbb.save('GDP.xlsx')
Ⅵ.效果展示2
一个excel文件存储多张sheet工作表:
python爬取全球历年GDP数据相关推荐
- 用Python爬取中国各省GDP数据
介绍 在数据分析和经济研究中,了解中国各省份的GDP数据是非常重要的.然而,手动收集这些数据可能是一项繁琐且费时的任务.幸运的是,Python提供了一些强大的工具和库,使我们能够自动化地从互联网上爬取 ...
- python实战|python爬取58同城租房数据并以Excel文件格式保存到本地
python实战|python爬取58同城租房数据并以Excel文件格式保存到本地 一.分析目标网站url 目标网站:https://cq.58.com/minsuduanzu/ 让我们看看网站长啥样 ...
- python爬取微博热搜数据并保存!
主要用到requests和bf4两个库将获得的信息保存在d://hotsearch.txt下importrequests;importbs4mylist=[]r=requests.get(ur- 很多 ...
- Python爬取京东任意商品数据实战总结
利用Python爬取京东任意商品数据 今天给大家展示爬取京东商品数据 首先呢还是要分思路的,我分为以下几个步骤: 第一步:得到搜索指定商的url 第二步:获得搜索商品列表信息 第三步:对得到的商品数据 ...
- python 爬取24小时天气数据
python 爬取24小时天气数据 1.引入相关库 # -*- coding: utf-8 -*- import requests import numpy as np 关于爬虫,就是在网页上找到自己 ...
- 用python爬取基金网信息数据,保存到表格,并做成四种简单可视化。(爬虫之路,永无止境!)
用python爬取基金网信息数据,保存到表格,并做成四种简单可视化.(爬虫之路,永无止境!) 上次 2021-07-07写的用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化. 有的人留 ...
- python爬淘宝app数据_一篇文章教会你用Python爬取淘宝评论数据(写在记事本)
[一.项目简介] 本文主要目标是采集淘宝的评价,找出客户所需要的功能.统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等. [二.项目准备工作] 准备Pycharm,下载安装等,可以参考这篇文章 ...
- PYTHON爬取汽车之家数据
PYTHON爬取汽车之家数据 使用知识 使用BeautifulSoup模块 使用正则表达式 使用到多线程爬取 使用说明 使用前请安装BeauifulSoup 起始页面: https://www.aut ...
- 利用python爬取58同城简历数据
利用python爬取58同城简历数据 最近接到一个工作,需要获取58同城上面的简历信息(http://gz.58.com/qzyewu/).最开始想到是用python里面的scrapy框架制作爬虫.但 ...
- 利用python爬取58同城简历数据_利用python爬取58同城简历数据-Go语言中文社区
利用python爬取58同城简历数据 最近接到一个工作,需要获取58同城上面的简历信息(http://gz.58.com/qzyewu/).最开始想到是用python里面的scrapy框架制作爬虫.但 ...
最新文章
- 使用beanUtils操纵bean的属性
- 直播实录 | AlphaGo Zero是如何实现无师自通的?
- 如何在SAP CRM WebClient UI上打开外部链接
- CSharp 如何OCR离线识别文本
- Spring boot web(2):web综合开发
- h5 php js实验总结,H5学习_番外篇_PHP数据库操作
- PHP获取字符串的所有子集,PHP Regexp(PCRE)-查找所有子字符串的集合
- 超全!一文看懂 9 种Transformer结构!
- linux opencv移植教程,OpenCV在Ubuntu和Linux系统下的移植
- net.sf.json与fastjson两种jar包的使用
- 测试用例管理系统 TestRail测试用例
- 【10月10日】指数估值排名
- 【支付宝】支付 系统繁忙,请稍后再试(ALIN10146)
- MySql 数据库 管理员密码忘记怎么办?
- 无法对多重选择区域执行此操作
- 麻雀要革命 第四章 旋转!追逐游戏的命运齿轮 第一节
- ✨ StarRocks 6 月社区动态
- 计算机工程本科旧金山找工,2020年旧金山大学本科热门专业
- c语言循环程序模板,循环结构程序设计C语言程序
- 第01节 Go语言简介
热门文章
- wps大纲栏显示在右边_隐藏显示word页面标记,就这么几招,你会吗?
- 北师大有计算机技术专硕嘛,北师大新增一硕士专业 称要培养作家
- mysqldump 中参数 --set-gtid-purged 控制 SET @@GLOBAL.GTID_PURGED和 SET @@SESSION.SQL_LOG_BIN
- Google Earth Engine(GEE)——将原始影像进行升尺度计算(以海南省为例)
- java技术分享些什么,大牛最佳总结
- 大学生应该怎么学习Java?
- wps怎么关闭广告wps广告关闭
- elixir 简单的server,client
- Mac 好用的 Android 模拟器整理(玩游戏、装应用、支持咸鱼、拼多多...)
- 最简单的方法来压缩图片,改变图片大小