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

如何使用BeautifulSoup从爬取结果中获取第一个链接

获取解析结果中第一个链接的实现方法

不需要遍历所有a标签打印后再从输出内容里反向提取,直接在解析环节就能拿到目标值,两种常用实现方式如下:

  • 方式一:直接从解析结果中取第一个a标签(推荐,效率最高)
    soup.find_all('a')返回的是存储所有匹配a标签的列表,列表索引从0开始,直接取索引为0的元素,再读取它的href属性即可,不需要做全量遍历。
    完整可运行代码:
from bs4 import BeautifulSoup
import requests

url = "https://www.tutorialspoint.com/index.htm"
req = requests.get(url)
soup = BeautifulSoup(req.text, "html.parser")

# 提取所有a标签组成的列表
all_links = soup.find_all('a')
# 先判断列表非空,避免页面无a标签时触发索引报错
if all_links:
    first_link = all_links[0].get('href')
    print(first_link)

运行后会直接输出第一个链接https://www.tutorialspoint.com/index.htm。

  • 方式二:从已生成的输出文本中提取第一个链接
    如果你已经拿到了包含多个链接的输出文本,不想重新发起请求解析页面,可以用正则匹配抓取文本里第一个符合URL格式的内容:
import re

# 存储已有的输出文本
output_content = """https://www.tutorialspoint.com/index.htm https://www.tutorialspoint.com/codingground.htm https://www.tutorialspoint.com/about/about_careers.htm"""
# 匹配第一个以http/https开头的连续非空字符串(即第一个链接)
first_link_match = re.search(r'https?://\S+', output_content)
if first_link_match:
    print(first_link_match.group())

两种方式都能准确拿到目标第一个链接,优先用第一种方式,少做多余的遍历和文本处理,运行效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:21:33