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都包含以下参数。

TIOBE编程排行榜最新排名,数据抓取并写入数据库_第1张图片

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

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

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

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

TIOBE编程排行榜最新排名,数据抓取并写入数据库_第2张图片

TIOBE编程排行榜排名

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

import pandas as pd

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

TIOBE编程排行榜最新排名,数据抓取并写入数据库_第3张图片

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

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

TIOBE编程排行榜最新排名,数据抓取并写入数据库_第4张图片

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 语句后添加一个换行符

TIOBE编程排行榜最新排名,数据抓取并写入数据库_第5张图片

除此之外,还可以使用 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编程排行榜最新排名,数据抓取并写入数据库_第6张图片

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

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

你可能感兴趣的:(Python,oracle,数据库)