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

如何将BeautifulSoup find_all('a')的结果转为完整链接列表?

问题解决方法

你的问题根本不是换行符的问题,而是没有用列表存储循环生成的每个链接——每次循环你都用单个变量覆盖之前的值,最后自然只剩最后一个链接。

修正后的代码

import requests
from bs4 import BeautifulSoup

# 发起请求
response = requests.get("http://www.kulugyminiszterium.hu/dtwebe/Irodak.aspx")
# 初始化空列表存储所有完整链接
full_links = []

soup = BeautifulSoup(response.text, 'html.parser')
for link in soup.find_all('a'):
    href = link.get('href')
    if href:  # 跳过没有href属性的a标签,避免报错
        # 拼接完整链接并处理空格
        full_link = f"http://www.kulugyminiszterium.hu/dtwebe/{href}".replace(' ', '%20')
        full_links.append(full_link)
        print(full_link)

# 打印所有链接列表
print("所有完整链接:")
print(full_links)

# 保存到txt文件
with open('完整链接列表.txt', 'w', encoding='utf-8') as f:
    for link in full_links:
        f.write(f"{link}\n")

关键修改点

  • 新增full_links = []空列表,专门用来存储每一个生成的完整链接
  • 循环里用full_links.append(full_link)把每个链接加入列表,而非覆盖单个变量
  • 增加if href:判断,过滤掉没有href属性的a标签,避免出现拼接错误
  • 用with open上下文管理器写入文件,遍历列表将每个链接单独写入一行

这样就能得到所有完整链接的列表,保存文件时也会把所有链接都写入进去。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:05:10