抓取TIOBE编程排行榜最新数据,并保存至数据库

数据我来大话侃 2024-02-19 05:22:42

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

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

1. read_html抓取数据

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

import pandas as pddf=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排行榜抓取数据并将其写入数据库是一个相对简单的过程,并且可以定期更新数据库,以确保数据的实时性和准确性,如果有任何其他问题或需要进一步的帮助,可在评论区留言~

0 阅读:0

数据我来大话侃

简介:感谢大家的关注