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

Python提取HTML中特定PDF链接的方法求助

解决Python提取HTML中PDF链接的问题

给你两种可行的方案,新手也能快速上手:

方案1:用正则表达式(适合当前简单HTML结构)

你之前用正则失败大概率是匹配规则没写对,试试这个精准匹配的规则:

import re

# 假设你已经把HTML内容读取到了html_content变量中
html_content = """<td><a href="/archiv/zivotopisy/2022/6/Zivotopis-OJVLA-20220624132548.pdf" target="_blank">Jitka Horáková</a></td>
                                    <td><a href="/archiv/zivotopisy/2022/6/Zivotopis-XUBIC.pdf" target="_blank">Bohumil Tobolka</a></td>
                                    <td><a href="/archiv/zivotopisy/2022/5/Zivotopis-UNBLA.pdf" target="_blank">Stanislava Rousová, Ing.</a></td>
                                    <td><a href="/archiv/zivotopisy/2022/4/Zivotopis-NYBCF-20220407134152.pdf" target="_blank">Ladislav Macháč</a></td>
                                    <td><a href="/archiv/zivotopisy/2022/4/Zivotopis-PVDPA.pdf" target="_blank">Dana Macháčová</a></td>"""

# 匹配以/archiv开头、.pdf结尾的href属性值
pattern = r'href="(/archiv.*?\.pdf)"'
links = re.findall(pattern, html_content)

# 将提取到的链接写入TXT文件
with open('pdf_links.txt', 'w', encoding='utf-8') as f:
    for link in links:
        f.write(link + '\n')

说明:.*?是非贪婪匹配,避免把多个链接误识别成一个;\.是转义点号,因为正则里点号默认匹配任意字符。

方案2:用HTML解析库(推荐,更健壮)

如果以后HTML结构变复杂(比如标签嵌套、属性顺序改变),正则很容易失效,用BeautifulSoup解析HTML更靠谱:

  1. 先安装依赖库:pip install beautifulsoup4
  2. 运行下面的代码:
from bs4 import BeautifulSoup

html_content = """<td><a href="/archiv/zivotopisy/2022/6/Zivotopis-OJVLA-20220624132548.pdf" target="_blank">Jitka Horáková</a></td>
                                    <td><a href="/archiv/zivotopisy/2022/6/Zivotopis-XUBIC.pdf" target="_blank">Bohumil Tobolka</a></td>
                                    <td><a href="/archiv/zivotopisy/2022/5/Zivotopis-UNBLA.pdf" target="_blank">Stanislava Rousová, Ing.</a></td>
                                    <td><a href="/archiv/zivotopisy/2022/4/Zivotopis-NYBCF-20220407134152.pdf" target="_blank">Ladislav Macháč</a></td>
                                    <td><a href="/archiv/zivotopisy/2022/4/Zivotopis-PVDPA.pdf" target="_blank">Dana Macháčová</a></td>"""

# 解析HTML内容
soup = BeautifulSoup(html_content, 'html.parser')
links = []

# 遍历所有a标签,筛选符合条件的链接
for a_tag in soup.find_all('a'):
    href = a_tag.get('href')
    if href and href.startswith('/archiv') and href.endswith('.pdf'):
        links.append(href)

# 写入文件
with open('pdf_links.txt', 'w', encoding='utf-8') as f:
    for link in links:
        f.write(link + '\n')

这个方法直接基于HTML结构解析,不用纠结正则的匹配细节,容错性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:09:25