使用Beautiful Soup爬取网页:处理Attribute Error并返回对应结果
解决Beautiful Soup爬取网页的Attribute Error问题
爬取网页时部分条目缺少目标信息,导致调用Beautiful Soup方法时触发Attribute Error,可通过精准异常捕获实现需求:正常获取到数据时返回信息+图片链接,异常时返回指定提示。
修正后的实现代码
from bs4 import BeautifulSoup import requests def crawl_target_content(soup): try: # 示例:获取信息文本(根据实际网页标签调整) info = soup.find('div', class_='target-info').get_text(strip=True) # 示例:获取图片链接(根据实际网页img标签调整) img_url = soup.find('img', class_='item-image')['src'] return [info, img_url] except AttributeError: # 捕获标签不存在或属性缺失导致的异常 return ["数据不可用,该条目缺少所需信息"] # 实际调用示例 target_url = "你要爬取的网页URL" resp = requests.get(target_url) soup = BeautifulSoup(resp.text, 'html.parser') # 若爬取多个条目,可循环遍历soup.find_all的结果 result = crawl_target_content(soup) print(result)
关键说明
- 精准捕获异常:只捕获
AttributeError,避免掩盖其他未知错误(比如网络请求异常) - 逻辑顺序:先尝试获取核心信息,再获取图片,任一环节触发AttributeError则直接返回提示
- 适配实际网页:代码中
find的参数(class_、标签名)需根据目标网页的实际结构调整
内容的提问来源于stack exchange,提问作者Ari
相关产品推荐
相关产品推荐

