📅  最后修改于: 2023-12-03 15:09:04.026000             🧑  作者: Mango
在网页爬虫过程中,我们经常需要从链接中获取文件或资源。其中,PDF 文件也是一种常见的文件格式。在 Python 中,我们可以通过 BeautifulSoup 库来解析 HTML 页面并获取相关链接。
接下来,我们将介绍如何使用 BeautifulSoup 找到链接中的 PDF 文件。
在终端中运行以下命令安装 BeautifulSoup:
pip install beautifulsoup4
我们需要从该页面中提取 PDF 文件链接。以下是一个示例页面:
<!DOCTYPE html>
<html>
<head>
<title>Python PDF Files</title>
</head>
<body>
<h1>Python PDF Files</h1>
<ul>
<li><a href="https://www.example.com/python_tutorial.pdf">Python Tutorial</a></li>
<li><a href="https://www.example.com/python_cheat_sheet.pdf">Python Cheat Sheet</a></li>
<li><a href="https://www.example.com/python_cookbook.pdf">Python Cookbook</a></li>
</ul>
</body>
</html>
我们可以使用 BeautifulSoup 的 find_all 函数来解析所有链接,并判断其 href 属性是否以 .pdf 结尾。
以下是示例代码:
from bs4 import BeautifulSoup
import requests
# 请求页面内容
url = 'https://www.example.com/python_pdfs.html'
response = requests.get(url)
# 解析页面内容
soup = BeautifulSoup(response.content, 'html.parser')
# 查找所有链接
links = soup.find_all('a')
# 遍历所有链接,查找 PDF 文件
for link in links:
href = link.get('href')
if href.endswith('.pdf'):
print(href)
输出:
https://www.example.com/python_tutorial.pdf
https://www.example.com/python_cheat_sheet.pdf
https://www.example.com/python_cookbook.pdf
我们通过查找所有链接,并使用 endswith 函数判断链接的结尾是否为 .pdf,最终得到了所有 PDF 文件的链接。