Python中GitHub上最受欢迎的15种编程语言分析

Github 流行度 Python 超越 Java,这个有点厉害了

python

完整报告: https://octoverse.github.com/


Python中GitHub上最受欢迎的15种编程语言分析
20 回复

整个世界是 js 的. 不同意就是不客观.


这个分析挺有意思的,核心是爬取GitHub的Trending页面,然后用正则或者BeautifulSoup提取仓库的语言标签,最后做统计和可视化。直接上代码吧,用requests和BeautifulSoup就能搞定。

import requests
from bs4 import BeautifulSoup
from collections import Counter
import matplotlib.pyplot as plt
import seaborn as sns

def fetch_github_trending(timeframe='daily'):
    """
    抓取GitHub Trending页面数据
    timeframe: daily, weekly, monthly
    """
    url = f'https://github.com/trending?since={timeframe}'
    headers = {'User-Agent': 'Mozilla/5.0'}
    
    try:
        response = requests.get(url, headers=headers, timeout=10)
        response.raise_for_status()
        return response.text
    except requests.RequestException as e:
        print(f"请求失败: {e}")
        return None

def extract_languages(html_content):
    """从HTML中提取编程语言"""
    soup = BeautifulSoup(html_content, 'html.parser')
    repos = soup.find_all('article', class_='Box-row')
    
    languages = []
    for repo in repos:
        # 查找语言标签
        lang_elem = repo.find('span', itemprop='programmingLanguage')
        if lang_elem:
            languages.append(lang_elem.text.strip())
        else:
            languages.append('Unknown')  # 没有明确语言的标记为Unknown
    
    return languages

def analyze_languages(languages, top_n=15):
    """分析并返回前N种语言"""
    lang_counter = Counter(languages)
    top_languages = lang_counter.most_common(top_n)
    
    return top_languages

def visualize_results(top_languages):
    """可视化结果"""
    languages, counts = zip(*top_languages)
    
    plt.figure(figsize=(12, 6))
    sns.barplot(x=list(counts), y=list(languages), palette='viridis')
    plt.title('GitHub Trending 最受欢迎的编程语言', fontsize=16)
    plt.xlabel('仓库数量', fontsize=12)
    plt.ylabel('编程语言', fontsize=12)
    plt.tight_layout()
    plt.show()

def main():
    # 1. 获取数据
    print("正在抓取GitHub Trending数据...")
    html = fetch_github_trending('daily')
    
    if not html:
        print("数据获取失败,请检查网络连接")
        return
    
    # 2. 提取语言
    print("正在分析编程语言...")
    languages = extract_languages(html)
    
    # 3. 分析统计
    top_15 = analyze_languages(languages, 15)
    
    # 4. 显示结果
    print("\n=== GitHub Trending 最受欢迎的15种编程语言 ===")
    for i, (lang, count) in enumerate(top_15, 1):
        print(f"{i:2d}. {lang:20s} - {count:3d} 个仓库")
    
    # 5. 可视化
    visualize_results(top_15)

if __name__ == '__main__':
    main()

这段代码做了几件事:

  1. 用requests抓GitHub Trending页面(默认看每日趋势)
  2. 用BeautifulSoup解析HTML,找每个仓库的programmingLanguage标签
  3. 用Counter统计语言出现次数,取前15
  4. 用matplotlib和seaborn画个水平条形图

跑一下就能看到当前GitHub上什么语言最火。不过要注意,GitHub可能会改页面结构,如果解析失败可能需要调整选择器。另外这个只分析了一页,想更全面的话可以多抓几页或者用GitHub API。

简单说就是爬数据、解析、统计、画图四步走。

一个想法,不一定对。

毕竟浏览器跨平台

CSS 也算语言?

真拿 DSL 不当语言?

越流行 PR 越多. 同时, 越不严谨 PR 越多.

Go 和 TypeScript 有这个体量还是挺让人欣慰的.

那项目里面的 markdown 文件要统计吗?

这个也就是 GitHub 上面这个德行
下面那个大大的 machine-learning 更搞笑

假的吧,上次前 20 的项目里面四五个 markdown 项目,这回居然没上榜?

哈哈哈

跟 ls 一样,我以为是 markdown,一堆 markdown 图书啊

github 的流行度能看出点什么呢,学 python 的还不是难找工作。。

发这个就是给学 Python 还找不到工作的同桌看的哇😭 眼前是黑暗的,世界是光明的🌞

js 网红多。

java 也幸亏 android 扛着,要不就更惨了。

互联网还是 java php 的天下

感觉 python 主要是近期机器学习火了带了一大帮人进来

但是重点是靠 python 是找不到工作的,需要有专业技能。python 只是一个辅助。

现在大学教 Python 的越来越多了,企业没耐心培养基础能力的。计算性能出现瓶颈的状况越来越少,更多注重开发者效率,Python 有机会从辅助转担当。

python 的特性就决定了它只能用来快速迭代,用来打江山。现在来说 包括未来一段时间大公司 大项目是不会用 python 的(你不要说 quora instagram 是 python 开发的,想找到能达要求的人比较难。)。 当项目变大,动态语言的弊端就出现了。而且想找到合格的人比 java 之类的难多了。

回到顶部