Python中GitHub上最受欢迎的15种编程语言分析
Python中GitHub上最受欢迎的15种编程语言分析
这个分析挺有意思的,核心是爬取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()
这段代码做了几件事:
- 用requests抓GitHub Trending页面(默认看每日趋势)
- 用BeautifulSoup解析HTML,找每个仓库的
programmingLanguage标签 - 用Counter统计语言出现次数,取前15
- 用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 之类的难多了。



