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

Python嵌套循环网页爬取报错:列表对象无find_all属性

解决AttributeError: 'list' object has no attribute 'find_all'问题

嘿,我来帮你搞定这个报错!咱们先把问题掰扯清楚:

你代码里的result是个Python列表——因为soup.find_all()返回的本身就是包含多个Tag对象的列表,你把这些Tag逐个append到result里,它自然还是个列表。而find_all()是BeautifulSoup的Tag对象或BeautifulSoup实例才有的方法,列表根本没这个属性,所以才会抛出这个错误。

修正后的代码示例

方式一:嵌套循环(直观易懂)

直接遍历每个bodyText类的div标签,在每个div内部查找p标签:

website_details = soup.find_all("div", attrs={'class': 'bodyText'})
result2 = []
# 遍历每个符合条件的div标签
for div_tag in website_details:
    # 在当前div下查找所有p标签
    p_tags = div_tag.find_all("p")
    for p_tag in p_tags:
        result2.append(p_tag)

方式二:列表推导式(简洁高效)

如果想让代码更紧凑,用Python的列表推导式一步就能完成:

website_details = soup.find_all("div", attrs={'class': 'bodyText'})
result2 = [p_tag for div_tag in website_details for p_tag in div_tag.find_all("p")]

这样就能正确获取所有bodyText类div下的p标签,不会再出现那个报错啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:36:31