GDP年份数据

该博客主要展示了如何使用Python的requests和lxml库爬取网页上的全球GDP数据,并进行处理和存储。内容包括设置User-Agent以伪装浏览器,定位到目标表格,提取年份、国家和地区、GDP及占比等信息,并将数据保存到CSV文件中。博客重点在于数据抓取和基础数据分析的过程。
摘要由CSDN通过智能技术生成
import requests
from lxml import etree
import csv #引入
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"} #伪装

url='https://www.kylc.com/stats/global/yearly_per_country/g_gdp/chn-usa-jpn.html' #网页的链接

rp=requests.get(url,headers=headers) #发送请求
html=etree.HTML(rp.text) #获取网页源码
divs=html.xpath('/html/body/div[2]/div[1]/div[5]/div[1]/div[2]/div/div[2]/div/table/tbody/tr')
coun=html.xpath('/html/body/div[2]/div[1]/div[5]/div[1]/div[2]/div/div[2]/div/table/thead/tr[1]/th') #使用xpath解析
# print(divs)
list=[]
year=[]
cou=[]
gdp=[] 
per=[] # 定义空列表
for r,i in enumerate (coun[1:]):
    country_region=i.xpath('normalize-space(./text())')
    cou.append(country_region)


for r in range(0,33):
    i=divs[r]
    year1=i.xpath('normalize-space(./td[1]/text())')
    year.append(year1)
    year.append(year1)
    year.append(year1)

    GDP=i.xpath('normalize-space(./td[2])')
    GDP = str(GDP).split("亿")[0].split("万")[0]
    GDP1=i.xpath('normalize-space(./td[4])')
    GDP1= str(GDP1).split("亿")[0].split("万")[0]
    GDP2 = i.xpath('normalize-space(./td[6])')
    GDP2 = str(GDP2).split("亿")[0].split("万")[0] #循环解析获取
    gdp.append(float(GDP))
    gdp.append(float(GDP1))
    gdp.append(float(GDP2))
    per1=i.xpath('normalize-space(./td[3])')
    per2=i.xpath('normalize-space(./td[5])')
    per3 = i.xpath('normalize-space(./td[7])')
    per.append(per1)
    per.append(per2) 
    per.append(per3) #加入列表中
    list.append([year[r],cou[r%3],gdp[r],per[r]])
print(list) #打印

with open('GDP年份数据.csv','a',newline="",encoding='utf-8') as f:

    writer  = csv.writer(f)
    writer.writerow(['year','country_region','GDP','per'])

    writer.writerows(list) #保存为csv格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值