You need to enable JavaScript to run this app. 如何使用Python从HTML文件中提取链接且排除附属文本
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python从HTML文件中提取链接且排除附属文本

Python 从a标签中仅提取目标href链接(不附带抓取展示文本)

你给出的待处理HTML片段经转义还原后的实际结构为:

<a href="https://www.mk.co.kr/news/culture/view/2021/03/258551/"">abcdefg~blahblahblah</a>
该片段的href属性值末尾附带冗余多余引号,属于网页常见脏数据,解析过程需要兼容这类异常格式。

生产环境推荐方案(BeautifulSoup解析)

相比正则方案,专门的HTML解析库容错性更强,不会因标签格式偏差出现匹配失效问题,提取href属性时完全不会连带读取标签包裹的展示文本:

  • 安装依赖:运行 pip install beautifulsoup4 lxml
  • 实现代码:
from bs4 import BeautifulSoup

# 替换为实际待处理的原始HTML字符串
raw_html = '<a href="https://www.mk.co.kr/news/culture/view/2021/03/258551/"">abcdefg~blahblahblah</a>'
soup = BeautifulSoup(raw_html, 'lxml')

# 定位a标签,直接提取href属性值,不会读取标签内的展示文本
target_link = soup.find('a').get('href')
print(target_link)
  • 运行输出:https://www.mk.co.kr/news/culture/view/2021/03/258551/

无依赖轻量方案(正则实现)

仅适合临时处理固定格式的简单HTML片段,无需安装第三方库即可完成提取:

import re

raw_html = '<a href="https://www.mk.co.kr/news/culture/view/2021/03/258551/"">abcdefg~blahblahblah</a>'
# 匹配规则兼容单/双引号包裹的href、属性间多余空格、后续冗余属性的场景
match_result = re.search(r'<a[^>]*?href\s*=\s*["\']([^"\']+)["\']', raw_html)
if match_result:
    target_link = match_result.group(1)
    print(target_link)

注意:正则解析HTML的容错性较差,碰到属性顺序变动、URL嵌套特殊字符的场景容易出现匹配错误,不适合大规模爬取任务使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 10:27:04