Python项目:如何用BeautifulSoup识别无效链接并跳过循环?
解决BeautifulSoup提取时None类型链接的判断问题
你之前用type(link)=="NoneType"判断无效链接的方式是错的——type(None)返回的是<class 'NoneType'>这个类对象,不是字符串"NoneType",所以这种字符串对比永远不会生效。
正确的判断方式有两种:
- 最精准的写法:用
is关键字直接判断是否为None,Python里None是单例对象,is能精准匹配 - 简化写法:用
if not link:,因为None在布尔判断中会被视为False;不过如果你的场景里link可能存在其他空值(比如空的a标签),优先选第一种
给你举个循环里的实际代码示例:
from bs4 import BeautifulSoup # 假设你已获取到目标HTML内容 soup = BeautifulSoup(目标HTML文本, 'html.parser') # 遍历表格行(以表格数据提取为例) for row in soup.find_all('tr'): link = row.find('a') # 判断无效链接并跳过当前循环 if link is None: continue # 处理有效链接的逻辑,比如提取href属性 link_url = link.get('href') print(link_url)
内容的提问来源于stack exchange,提问作者Lukesky
相关产品推荐
相关产品推荐

