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

构建网页爬取工具:如何用BeautifulSoup提取指定class的href值?

用BeautifulSoup提取目标a标签的href值

嘿,这个问题很典型,我帮你搞定!既然你已经确认list-group-item这个class只对应这些目标a标签,那用BeautifulSoup处理起来其实很直接,看下面的步骤和代码:

步骤说明

  1. 先确保你已经安装了beautifulsoup4(如果需要从网页爬取内容,还得装requests),用命令pip install beautifulsoup4 requests就能搞定。
  2. 解析HTML内容——不管是你手里的本地片段,还是从网页获取的内容都可以。
  3. 定位所有class为list-group-item的a标签。
  4. 提取每个标签的href属性,再处理掉首尾的斜杠,就能得到你要的test1、test2这类结果。

代码示例(处理本地HTML片段)

from bs4 import BeautifulSoup

# 原HTML片段里的a标签没闭合,不过BeautifulSoup能兼容这种不规范写法,我这里也保留了原格式
html_content = '''
<a class="list-group-item" href="/test1/">
<a class="list-group-item" href="/test2/">
<a class="list-group-item" href="/test3/">
'''

# 创建BeautifulSoup解析对象,用内置的html.parser就够用,也可以装lxml用它解析(速度更快)
soup = BeautifulSoup(html_content, 'html.parser')

# 精准定位所有符合条件的a标签
target_links = soup.find_all('a', class_='list-group-item')

# 提取href并清理斜杠,生成结果列表
result = [link['href'].strip('/') for link in target_links]

print(result)  # 输出:['test1', 'test2', 'test3']

代码示例(从网页直接爬取)

如果你的HTML来自在线网页,先通过requests获取网页内容再解析:

import requests
from bs4 import BeautifulSoup

# 替换成你实际要爬取的网页URL
target_url = "https://your-target-page.com"
response = requests.get(target_url)
# 确保请求成功,避免后续解析出错
response.raise_for_status()

soup = BeautifulSoup(response.text, 'html.parser')
target_links = soup.find_all('a', class_='list-group-item')
result = [link['href'].strip('/') for link in target_links]

print(result)

关键细节解释

  • 用class_='list-group-item'而非class='list-group-item':因为class是Python的关键字,所以BeautifulSoup专门用class_来指定CSS类选择器。
  • link['href']:像字典取值一样直接获取a标签的href属性,简单高效。
  • .strip('/'):能移除字符串首尾的所有斜杠,不管href是/test1/还是/test1,都能得到干净的test1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:51:43