数据库十年巅峰对决,谁才是真正的王者?
副问题[/!--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 = [] (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |