You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python爬虫抓取GitHub用户星标数出现AttributeError报错如何修复

报错原因
  • CSS选择器语法错误:HTML类选择器需要在类名前加.标识,你写的text-bold color-fg-default + span缺少类名前缀,无法匹配到任何元素,select_one会返回None,调用.text属性就会触发该报错。
  • 元素定位规则错误:你使用的选择器即使修正语法,也无法匹配到GitHub个人页的星标计数节点。
  • 缺少请求头配置:GitHub会拦截无合法UA标识的请求,返回的异常页面不存在目标元素,也会导致匹配失败。
  • 缺失依赖导入:代码没有导入requests和BeautifulSoup库,运行时会提前触发导入错误。
修复后代码
import requests
from bs4 import BeautifulSoup

def total_stars(username):
    # 配置请求头模拟浏览器访问,避免被GitHub拦截
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
    }
    html = requests.get(f'https://github.com/{username}', headers=headers).text
    soup = BeautifulSoup(html, 'html.parser')
    # 使用更稳定的选择器定位星标计数节点
    star_node = soup.select_one('a[href$="tab=stars"] .Counter')
    if star_node:
        # 去除计数里的逗号,转成整数返回
        star_count = int(star_node.text.strip().replace(',', ''))
        print(star_count)
        return star_count
    else:
        print('未匹配到星标数据,请检查用户名是否正确或GitHub页面结构是否更新')
        return 0
验证示例

调用total_stars('torvalds')即可输出对应GitHub用户的总星标数。

内容的提问来源于stack exchange,提问作者lex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:57:04