如何用BeautifulSoup获取特定class下itemprop="url"的href链接
解决方法
你的问题出在两个关键地方:
- 错误地把
fighter_list left这个class加到了<a>标签的筛选条件里,但实际上这个class属于外层的<div>元素 - 代码里的class名写成了
fighter_List left(大写L),和页面实际的fighter_list left(小写l)不匹配,导致无法定位到目标区块
下面是两种可行的修复方案:
方案1:分步查找
先定位到所有目标div,再在每个div内部查找符合条件的a标签:
# 先获取所有class为"fighter_list left"的div fighter_containers = html.find_all('div', class_="fighter_list left") # 遍历每个容器,提取里面的目标链接 for container in fighter_containers: fighter_links = container.find_all('a', itemprop="url") for link in fighter_links: print(link.get('href'))
方案2:使用CSS选择器(更简洁)
直接用CSS选择器链式定位,一步到位:
# 用CSS选择器匹配目标div下的指定a标签 for link in html.select('div.fighter_list.left a[itemprop="url"]'): print(link.get('href'))
这两种方法都能精准提取到你需要的/fighter/开头的链接,不会拿到页面其他地方的同属性链接。
内容的提问来源于stack exchange,提问作者yfr code
相关产品推荐
相关产品推荐

