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

Python如何将BeautifulSoup提取的链接传入下载变量实现动态获取资源

实现方法

直接将两段代码整合,把BeautifulSoup提取到的目标链接直接赋值给url变量即可,补全代码中缺失的依赖导入后即可自动运行:

# 导入所有需要的依赖
import requests
from bs4 import BeautifulSoup as bs
import os
import io
import zipfile

folder_name = "../data"
# 第一步:提取目标下载链接
r = requests.get('https://data.ed.gov/dataset/college-scorecard-all-data-files-through-6-2020/resources')
soup = bs(r.content, 'lxml')
links = [item['href'] if item.get('href') is not None else item['src'] for item in soup.select('[href^="http"], [src^="http"]') ]

# 可选优化:避免站点链接顺序变动拿错地址,增加关键词筛选逻辑
# 筛选包含原始数据包关键词的链接,替换原有的固定索引links[1]
target_links = [link for link in links if "CollegeScorecard_Raw_Data" in link and link.endswith(".zip")]
if not target_links:
    raise Exception("未匹配到目标下载链接,请检查站点结构是否变动")
url = target_links[0]
# 如果你确认链接顺序不会长期变动,也可以直接用 url = links[1]

# 第二步:下载解压逻辑
# 目标文件夹不存在则新建
if not os.path.exists(folder_name):
    os.makedirs(folder_name)

response = requests.get(url, stream = True)

# 解压内容
with zipfile.ZipFile(io.BytesIO(response.content)) as zf:
    for elem in zf.namelist():
        zf.extract(elem, folder_name)

上述代码新增的关键词筛选逻辑,比直接取固定索引links[1]的稳定性更高,可避免后续站点调整资源排列顺序后拿到错误链接的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 11:36:03