Python爬取近十年TIOBE编程语言热度数据并可视化!

本文展示了如何使用Python通过requests和正则表达式爬取TIOBE编程语言热度数据,并利用openpyxl存储数据,通过pyecharts进行时间轮播图的数据可视化。文中详细解释了爬虫实现过程,以及pyecharts在数据展示时可能出现的资源加载问题及其解决方案。

本文介绍如何利用requests+正则表达式爬取TIOBE编程语言热度数据,并使用openpyxl写入数据与pyecharts时间轮播图进行可视化。

一、数据获取

我们需要爬取的目标url为https://www.tiobe.com/tiobe-index/打开之后如下

分析网页源代码可以找到想要的数据,利用正则表达式提取出想要的数据,并保存到Excel中,便于后续数据处理和可视化。

完整爬虫代码如下,其中大多数语句都给出了详细注释,感兴趣的读者可以进一步研究。

# -*- coding: UTF-8 -*- 
""" 
@File    :spider.py 
@Author  :叶庭云 
@优快云    :https://yetingyun.blog.youkuaiyun.com/ 
""" 
import requests 
import re 
import openpyxl 
import logging 
 
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s: %(message)s') 
headers = { 
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1" 
} 
 
wb = openpyxl.Workbook()    # 创建工作簿对象 
sheet = wb.active           # 获取活动的工作表 
# 编程语言   时间    热度 
sheet.append(['Programing', 'Date', 'data_per']) 
 
url = 'https://www.tiobe.com/tiobe-index/' 
rep = requests.get(url, headers=headers).text 
 
# 正则匹配提取数据 
data = re.findall('{name : (.*?),data : (.*?)}', rep) 
program
虽然给定引用未直接涉及在头歌平台上对9.4 TIOBE编程数据指数进行可视化的内容,但可以参考相关思路逐步实现。 首先,需要获取9.4 TIOBE编程数据指数。若该数据能从网页获取,可使用Python的`requests`库发送请求来获取数据,示例代码如下: ```python import requests url = 'your_url' # 替换为实际的数据获取URL response = requests.get(url) if response.status_code == 200: data = response.text # 进一步处理数据 else: print('请求失败') ``` 接着,对获取到的数据进行解析。如果数据是JSON格式,可使用`json`库;若是HTML格式,可使用`BeautifulSoup`库,示例代码如下: ```python import json from bs4 import BeautifulSoup # 若为JSON数据 try: json_data = json.loads(data) except json.JSONDecodeError: # 若为HTML数据 soup = BeautifulSoup(data, 'html.parser') # 进一步解析HTML ``` 最后,使用`pyecharts`库进行可视化。若遇到资源引用问题,可参考引用中提供的方法,下载所需js文件到本地修改资源引用地址,示例代码如下: ```python from pyecharts.globals import CurrentConfig from pyecharts import options as opts from pyecharts.charts import Bar # 修改全局HOST CurrentConfig.ONLINE_HOST = 'D:/python/pyecharts-assets-master/assets/' # 假设data是处理好的数据 bar = ( Bar() .add_xaxis(["编程语言1", "编程语言2", "编程语言3"]) .add_yaxis("TIOBE指数", [10, 20, 30]) .set_global_opts(title_opts=opts.TitleOpts(title="9.4 TIOBE编程数据指数可视化")) ) bar.render("tiobe_index.html") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值