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

如何使用Beautiful Soup提取链接的最后修改日期

解决方案

既然你已经成功提取到了目标pre标签的文本内容,接下来只需要对这段文本做简单解析,就能生成你想要的键值对字典了。下面是完整的实现代码和详细说明:

完整代码示例

from bs4 import BeautifulSoup
import requests

# 替换为你的目标URL
url = "https://example.com/your-target-path"
soup = BeautifulSoup(requests.get(url).content, "html.parser")

# 获取包含文件/目录信息的第二个pre标签文本
pre_content = soup.find_all("pre")[1].get_text()

# 初始化结果字典
version_modified_dict = {}

# 逐行处理文本内容
for line in pre_content.splitlines():
    # 去除行首尾空白字符
    cleaned_line = line.strip()
    # 跳过空行和上级目录的行(../)
    if not cleaned_line or cleaned_line == "../":
        continue
    # 按空格分割,最多分割3次,避免日期时间中的空格打乱分割结果
    parts = cleaned_line.split(maxsplit=3)
    # 提取版本号:去掉末尾的斜杠
    version = parts[0].rstrip("/")
    # 拼接日期和时间作为最后修改时间
    last_modified = f"{parts[1]} {parts[2]}"
    # 将键值对存入字典
    version_modified_dict[version] = last_modified

print(version_modified_dict)
# 输出示例: {'0.1.0': '21-Oct-2020 14:06'}

关键步骤说明

  • 定位目标文本:第一个pre标签是表头(Name Last modified Size),第二个pre标签才是包含版本目录和修改时间的内容,所以我们取soup.find_all("pre")[1]。
  • 过滤无效行:通过strip()去除行首尾空白,然后跳过空行和表示上级目录的../行,只处理有效版本目录行。
  • 安全分割内容:使用split(maxsplit=3)确保只把行分割成4个部分(版本目录、日期、时间、大小),这样即使日期或时间包含空格,也不会影响我们提取目标信息。
  • 格式化数据:去掉版本目录末尾的斜杠/,拼接日期和时间字符串,最终存入字典。

内容的提问来源于stack exchange,提问作者rchitect-of-info

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:00:47