使用BeautifulSoup无法获取全部div类?Python网页数据提取求助
问题解决:提取所有目标元素的href和aria-label
原代码问题分析
你的代码第二个循环错误地遍历了div元素(flyers),而非之前找到的links列表,这导致你无法获取到所有a标签的属性。同时代码也没有处理aria-label的提取逻辑。
修正后的代码
from bs4 import BeautifulSoup # 假设soup是已解析完成的HTML对象 for flyer_col in soup.find_all("div", class_='flyers_flyer-col__ZN_6Z'): # 获取当前div下所有带href属性的a标签 links = flyer_col.find_all("a", href=True) # 遍历每个a标签提取目标属性 for link in links: # 提取href href = link['href'] # 提取aria-label,用get方法避免属性不存在时抛出异常 aria_label = link.get('aria-label', '无aria-label属性') print(f"href: {href}, aria-label: {aria_label}")
关键修正点
- 将第二个循环的遍历对象从
flyers(div元素)改为links(a标签列表),确保遍历到所有目标链接 - 使用
link.get('aria-label', 默认值)的方式安全获取属性,避免因部分a标签无该属性导致程序报错 - 调整变量名(
flyer_col)提升代码可读性,避免变量名混淆
内容的提问来源于stack exchange,提问作者Katie
相关产品推荐
相关产品推荐

