加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

数据库十年巅峰对决,谁才是真正的王者?

发布时间:2019-12-23 09:59:37 所属栏目:MySql教程 来源:站长网
导读:副标题#e# 在年终岁尾之际,盘一盘大家比较关心的一些数据。今天先来看看各大数据库在过去一年的表现! 图片来自 Pexels 先来看看数据库流行度总体走势: 视频请查看这里 数据获取 所有的数据都来源自一个数据库流行趋势统计网站: https://db-engines.com/
副标题[/!--empirenews.page--]

在年终岁尾之际,盘一盘大家比较关心的一些数据。今天先来看看各大数据库在过去一年的表现!

数据库十年巅峰对决,谁才是真正的王者?

图片来自 Pexels

先来看看数据库流行度总体走势:

数据库十年巅峰对决,谁才是真正的王者?

视频请查看这里

数据获取

所有的数据都来源自一个数据库流行趋势统计网站:

https://db-engines.com/ 

Method 1

我们先来看获取数据方法,首先我们可以在下面地址中看到一个包含所有数据库信息的表格:

https://db-engines.com/en/ranking 

数据库十年巅峰对决,谁才是真正的王者?

然后可以进入到每个数据库详情页面中,该数据库历年流行度数据都会在页面加载之后包含在 JavaScript 的变量中:

https://db-engines.com/en/ranking_trend/system/Oracle 

数据库十年巅峰对决,谁才是真正的王者?

所以我们可以通过解析该 JavaScript 代码来获取每个数据库的历年数据,同时为了加快抓取速度,使用了异步请求。

先抓取所有数据库名称信息,通过 Pandas 的 read_html 方法可以方便的读取 HTML 中的 Table 数据:

import pandas as pd 

 

 

mystr = ' Detailed vendor-provided information available' 

 

 

def set_column3(column3): 

    if mystr in column3: 

        column3 = column3.split(mystr)[0] 

    return column3 

 

 

url = 'https://db-engines.com/en/ranking' 

tb = pd.read_html(url) 

db_tb = tb[3].drop(index=[0, 1, 2])[[0, 1, 2, 3, 4, 5, 6, 7]] 

 

# 处理数据 

db_tb[3] = db_tb[3].apply(set_column3) 

 

# 保存数据 

db_tb.to_csv('db_tb.csv') 

异步抓取数据库详细信息:

async def fetch(session, url): 

    async with session.get(url) as response: 

 

        return await response.text() 

 

 

async def get_db_data(db_name): 

    url = 'https://db-engines.com/en/ranking_trend/system/%s' % db_name 

 

    async with aiohttp.ClientSession() as session: 

        res = await fetch(session, url) 

        content = BeautifulSoup(res, "html.parser") 

        content.find_all("script") 

        db_data = content.find_all("script")[2].string 

        src_text = js2xml.parse(db_data) 

        src_tree = js2xml.pretty_print(src_text) 

        data_tree = BeautifulSoup(src_tree, 'html.parser') 

        data_tree.find_all('number') 

        data = [] 

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!