使用BeautifulSoup提取同class多个div下的所有a标签报错求助
问题解决:提取多个同class的div下的所有a元素
你的代码报错是因为 soup.find_all("div", class_="va-columns") 返回的是ResultSet对象(BeautifulSoup的列表型结果集),不是单个标签,所以不能直接链式调用 .find_all("a")。
以下是两种可行的修复方案:
方案1:遍历结果集逐个查找
先获取所有目标div,再循环遍历每个div提取内部的a标签:
from bs4 import BeautifulSoup divs = soup.find_all("div", class_="va-columns") links = [] # 遍历每个div,收集里面的a标签 for div in divs: links.extend(div.find_all("a"))
方案2:使用CSS选择器(更简洁)
直接用CSS选择器语法,一步定位到所有目标div下的a元素:
from bs4 import BeautifulSoup # 选择所有class为va-columns的div下的a标签 links = soup.select("div.va-columns a")
如果需要提取链接的实际地址,可以进一步处理:
# 筛选并提取有效的href属性 valid_links = [link.get("href") for link in links if link.get("href")]
内容的提问来源于stack exchange,提问作者Origami Max
相关产品推荐
相关产品推荐

