Ⅰ.概要

程序语言: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数据相关推荐

  1. 用Python爬取中国各省GDP数据

    介绍 在数据分析和经济研究中,了解中国各省份的GDP数据是非常重要的.然而,手动收集这些数据可能是一项繁琐且费时的任务.幸运的是,Python提供了一些强大的工具和库,使我们能够自动化地从互联网上爬取 ...

  2. python实战|python爬取58同城租房数据并以Excel文件格式保存到本地

    python实战|python爬取58同城租房数据并以Excel文件格式保存到本地 一.分析目标网站url 目标网站:https://cq.58.com/minsuduanzu/ 让我们看看网站长啥样 ...

  3. python爬取微博热搜数据并保存!

    主要用到requests和bf4两个库将获得的信息保存在d://hotsearch.txt下importrequests;importbs4mylist=[]r=requests.get(ur- 很多 ...

  4. Python爬取京东任意商品数据实战总结

    利用Python爬取京东任意商品数据 今天给大家展示爬取京东商品数据 首先呢还是要分思路的,我分为以下几个步骤: 第一步:得到搜索指定商的url 第二步:获得搜索商品列表信息 第三步:对得到的商品数据 ...

  5. python 爬取24小时天气数据

    python 爬取24小时天气数据 1.引入相关库 # -*- coding: utf-8 -*- import requests import numpy as np 关于爬虫,就是在网页上找到自己 ...

  6. 用python爬取基金网信息数据,保存到表格,并做成四种简单可视化。(爬虫之路,永无止境!)

    用python爬取基金网信息数据,保存到表格,并做成四种简单可视化.(爬虫之路,永无止境!) 上次 2021-07-07写的用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化. 有的人留 ...

  7. python爬淘宝app数据_一篇文章教会你用Python爬取淘宝评论数据(写在记事本)

    [一.项目简介] 本文主要目标是采集淘宝的评价,找出客户所需要的功能.统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等. [二.项目准备工作] 准备Pycharm,下载安装等,可以参考这篇文章 ...

  8. PYTHON爬取汽车之家数据

    PYTHON爬取汽车之家数据 使用知识 使用BeautifulSoup模块 使用正则表达式 使用到多线程爬取 使用说明 使用前请安装BeauifulSoup 起始页面: https://www.aut ...

  9. 利用python爬取58同城简历数据

    利用python爬取58同城简历数据 最近接到一个工作,需要获取58同城上面的简历信息(http://gz.58.com/qzyewu/).最开始想到是用python里面的scrapy框架制作爬虫.但 ...

  10. 利用python爬取58同城简历数据_利用python爬取58同城简历数据-Go语言中文社区

    利用python爬取58同城简历数据 最近接到一个工作,需要获取58同城上面的简历信息(http://gz.58.com/qzyewu/).最开始想到是用python里面的scrapy框架制作爬虫.但 ...

最新文章

  1. 使用beanUtils操纵bean的属性
  2. 直播实录 | AlphaGo Zero是如何实现无师自通的?
  3. 如何在SAP CRM WebClient UI上打开外部链接
  4. CSharp 如何OCR离线识别文本
  5. Spring boot web(2):web综合开发
  6. h5 php js实验总结,H5学习_番外篇_PHP数据库操作
  7. PHP获取字符串的所有子集,PHP Regexp(PCRE)-查找所有子字符串的集合
  8. 超全!一文看懂 9 种Transformer结构!
  9. linux opencv移植教程,OpenCV在Ubuntu和Linux系统下的移植
  10. net.sf.json与fastjson两种jar包的使用
  11. 测试用例管理系统 TestRail测试用例
  12. 【10月10日】指数估值排名
  13. 【支付宝】支付 系统繁忙,请稍后再试(ALIN10146)
  14. MySql 数据库 管理员密码忘记怎么办?
  15. 无法对多重选择区域执行此操作
  16. 麻雀要革命 第四章 旋转!追逐游戏的命运齿轮 第一节
  17. ✨ StarRocks 6 月社区动态
  18. 计算机工程本科旧金山找工,2020年旧金山大学本科热门专业
  19. c语言循环程序模板,循环结构程序设计C语言程序
  20. 第01节 Go语言简介

热门文章

  1. wps大纲栏显示在右边_隐藏显示word页面标记,就这么几招,你会吗?
  2. 北师大有计算机技术专硕嘛,北师大新增一硕士专业 称要培养作家
  3. mysqldump 中参数 --set-gtid-purged 控制 SET @@GLOBAL.GTID_PURGED和 SET @@SESSION.SQL_LOG_BIN
  4. Google Earth Engine(GEE)——将原始影像进行升尺度计算(以海南省为例)
  5. java技术分享些什么,大牛最佳总结
  6. 大学生应该怎么学习Java?
  7. wps怎么关闭广告wps广告关闭
  8. elixir 简单的server,client
  9. Mac 好用的 Android 模拟器整理(玩游戏、装应用、支持咸鱼、拼多多...)
  10. 最简单的方法来压缩图片,改变图片大小