TIOBE编程排行榜最新排名,数据抓取并写入数据库

2024-01-22 05:04

本文主要是介绍TIOBE编程排行榜最新排名,数据抓取并写入数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TIOBE编程排行榜作为衡量编程语言流行度的权威指标,每年都会吸引众多开发者和企业的关注。近日,TIOBE发布了2023年最新编程语言排行榜,展示了各种编程语言的市场份额和流行度。本文将介绍如何从TIOBE排行榜抓取数据,并将这些数据写入数据库的过程。

read_html函数是最简单的爬虫,可爬取静态网页表格数据,但只适合于爬取table 表格型数据,不是所有表格都可以用read_html爬取,有的网站表面上看起来是表格,但在网页源代码中不是table格式,而是list列表格式,这种表格就不适用read_html爬取。

1. read_html抓取数据

下面先学习一下read_html() 函数的参数,在代码行中写入

import pandas as pd
df=pd.read_html()

在括号中使用Shift+Tab组合键调用代码提示功能,可以看到read_html都包含以下参数。

这里例举常用的一些参数。

  • io:url、html文本、本地文件等
  • header:标题行
  • flavor:解析器
  • skiprows:跳过的行
  • attrs:属性,例如:attrs = {'id':'table'}
  • parse_dates:解析日期

下面我们使用代码实际爬取网页表格数据,比如下面的TIOBE编程排行榜排名数据。

https://www.tiobe.com/tiobe-index/

TIOBE编程排行榜排名

使用read_html爬取网页数据,返回的结果是DataFrame组成的list ,在最后加上一个索引[0]即可得到爬取的表格数据,爬取的数据如下。

import pandas as pddf=pd.read_html('https://www.tiobe.com/tiobe-index/')[0]
df.head(10)

数据有冗余,我们筛选自己需要的数据字段,多余的数据字段进行剔除,如下选取第1列、第2列、第5列、第6列、第7列的数据字段。

df_select=df.iloc[:,[0,1,4,5,6,]]
df_select.head(10)

2. 数据存储至数据库

使用Python写一个脚本,用于将上面的数据字段批量的存储为.sql格式数据,如下为生成的.sql格式数据,借助特定的SQL软件可以打开。

sql = [] # 使用列表来保存所有的 SQL 语句  for i, r in df_select.iterrows():  columns = "`, `".join(r.index)  # 获取所有列名,并用逗号和空格分隔它们  values = "`, `".join([f"'{r[col]}'" for col in r.index])  # 为每一列生成一个带单引号的值,并用逗号和空格分隔它们  sql_row = f"INSERT INTO `TIOBE` (`{columns}`) VALUES ({values}) ;"  # 生成完整的 SQL 插入语句  sql.append(sql_row)  # 将 SQL 插入语句添加到列表中  # 将所有的 SQL 语句保存到一个文件中,例如 "output.sql"  
with open('output.sql', 'w') as f:  for s in sql:  f.write(s + '\n')  # 在每个 SQL 语句后添加一个换行符

除此之外,还可以使用 f'' 函数批量生成SQL插入语句,这部分SQL语句是可以直接复制粘贴在SQL软件中实际运行的,更快捷地写插入SQL语句的代码,代码生成如下。

sql = ''
for i,r in df_select.iterrows():r_sql = f"INSERT INTO `TIOBE` (`Dec 2023`,`Dec 2022`,`Programming Language.1`,`Ratings`,`Change.1`)\nVALUES('{r['Dec 2023']}','{r['Dec 2022']}','{r['Programming Language.1']}','{r['Ratings']}','{r['Change.1']}',)"sql = sql + r_sql + ';' + '\n'
print(sql)

通过使用适当的工具和方法,从TIOBE排行榜抓取数据并将其写入数据库是一个相对简单的过程,通过定期更新数据库,您可以确保数据的实时性和准确性。希望本文对有需求的数据抓取和存储有所帮助,如果您有任何其他问题或需要进一步的帮助,可在评论区留言!

本文首发于公众号:大话数据分析,专注于数据分析的实践与分享,掌握Python、SQL、PowerBI、Excel等数据分析工具,擅长运用技术解决企业实际问题,欢迎一同探索数据的世界,解锁业务背后的秘密。

这篇关于TIOBE编程排行榜最新排名,数据抓取并写入数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/631906

相关文章

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多