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

Beautiful Soup中.attrs方法失效求助:新手复刻教程代码遇问题

问题分析与解决:Hangman游戏数据爬取中BeautifulSoup的attrs报错问题

你的代码有两个关键问题导致无法运行:

  1. 语法错误:result = 和requests.get(...)被拆分成了两行,这会直接触发Python语法错误,必须合并为一行。
  2. 空值访问错误:不是所有<th>标签内部都包含<a>标签,当i.find('a')找不到对应元素时,a_tag会是None,此时直接调用a_tag.attrs['title']会抛出AttributeError。

修正后的代码

import requests 
from bs4 import BeautifulSoup

result = requests.get('https://en.wikipedia.org/wiki/List_of_highest-grossing_films')
src = result.content
soup = BeautifulSoup(src, 'lxml')
results = []

for i in soup.find_all('th'):
    a_tag = i.find('a')
    # 先确认找到<a>标签,再尝试获取title属性
    if a_tag:
        # 使用get方法获取属性,避免标签无title属性时报错
        film_title = a_tag.attrs.get('title')
        if film_title:
            results.append(film_title)

print(results)

关键修正点说明

  • 修复了result = 的语法错误,将请求语句合并为一行;
  • 增加if a_tag:判断,跳过没有<a>标签的<th>元素;
  • 使用attrs.get('title')替代直接索引attrs['title'],即使<a>标签没有title属性也不会报错,只会返回None,再通过二次判断过滤掉空值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:55:20