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

遍历指定class的div提取链接时遇NoneType不可迭代错误求助

问题原因与修复方案

错误的根源不是带target-class的div不含链接,而是部分div没有class属性,调用div.get('class')会返回None,此时执行'target-class' in None就会触发TypeError——因为None是不可迭代对象,无法用in操作符判断成员。

修复方法1:先判断class属性存在,再检查目标类

修改判断条件,确保div.get('class')不为None后再进行成员检查:

import requests
from bs4 import BeautifulSoup

r = requests.get('https://targeturl.com/')
soup = BeautifulSoup(r.text, 'html.parser')

for div in soup.find_all('div'):
    # 先确认class属性存在,再检查是否包含目标类
    if div.get('class') and 'target-class' in div.get('class'):
        for link in div.find_all('a'):
            print(link.get('href'))

修复方法2:直接用BeautifulSoup的class筛选功能

更简洁的方式是在find_all中直接指定class_参数,BeautifulSoup会自动筛选带有目标类的div,无需手动处理class属性:

import requests
from bs4 import BeautifulSoup

r = requests.get('https://targeturl.com/')
soup = BeautifulSoup(r.text, 'html.parser')

# 直接筛选带有target-class的div
for div in soup.find_all('div', class_='target-class'):
    for link in div.find_all('a'):
        print(link.get('href'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:25:21