You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python爬取网站时,如何提取无class或id属性的<a>标签内文本?

嘿,这个需求其实很常见,用Python里的BeautifulSoup库就能轻松搞定!我给你两种实用的写法:

方法一:分步定位元素

先找到带d-inline类的<div>,再从中提取内部的<a>标签文本,逻辑清晰易懂:

from bs4 import BeautifulSoup

# 把你的HTML内容存到变量里(实际爬取时可以用requests获取页面内容)
html = '''<div class="d-inline"> <img class="team-img" src="https://cdn.fifacm.com/content/media/imgs/fifa22/teams/52/l73.png?v=10"> <a href="/22/team/73/paris-saint-germain"> Paris Saint-Germain </a> </div>'''

# 解析HTML
soup = BeautifulSoup(html, 'html.parser')

# 定位目标div
target_div = soup.find('div', class_='d-inline')
if target_div:
    # 找到div下的a标签,提取文本并去除前后空格
    team_name = target_div.find('a').get_text(strip=True)
    print(team_name)  # 输出:Paris Saint-Germain

方法二:用CSS选择器一步到位

如果想更简洁,可以直接用CSS选择器定位,div.d-inline > a表示选择class为d-inline的div的直接子元素a标签,完美匹配你的结构:

from bs4 import BeautifulSoup

html = '''<div class="d-inline"> <img class="team-img" src="https://cdn.fifacm.com/content/media/imgs/fifa22/teams/52/l73.png?v=10"> <a href="/22/team/73/paris-saint-germain"> Paris Saint-Germain </a> </div>'''

soup = BeautifulSoup(html, 'html.parser')

# 直接用CSS选择器定位并提取文本
team_name = soup.select_one('div.d-inline > a').get_text(strip=True)
print(team_name)  # 输出:Paris Saint-Germain

小提示

  • 实际爬取时,记得先用requests库获取目标页面的HTML内容,再传给BeautifulSoup解析。
  • 如果页面中有多个符合条件的元素,可以用soup.select('div.d-inline > a')获取所有匹配的a标签,然后循环提取文本。

内容的提问来源于stack exchange,提问作者NicolaIta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 15:47:49