python批量下载网页及其子网页文件
时间: 2024-09-07 13:05:57 浏览: 42
python批量修改文件夹及其子文件夹下的文件内容
在Python中,可以使用requests库来下载网页,然后配合BeautifulSoup库解析HTML,找出需要下载的子链接,最后利用os模块创建目录结构并下载文件。下面是一个简单的步骤概述:
1. **安装所需库**:
如果还没有安装requests和beautifulsoup4,可以在命令行中运行:
```
pip install requests beautifulsoup4
```
2. **编写脚本**:
```python
import os
import requests
from bs4 import BeautifulSoup
def download_page(url):
response = requests.get(url)
if response.status_code == 200:
with open(os.path.basename(url), 'wb') as file:
file.write(response.content)
def download_sub_pages(url):
html_content = requests.get(url).text
soup = BeautifulSoup(html_content, 'html.parser')
for link in soup.find_all('a'): # 搜索所有链接
href = link.get('href')
if href and not href.startswith('#') and 'http' in href:
full_url = url + href if not href.startswith('http') else href
download_page(full_url)
# 主函数
def batch_download(url):
if not os.path.exists('output'):
os.makedirs('output') # 创建一个名为'output'的目录
download_page(url) # 下载主页面
download_sub_pages(url) # 递归下载子页面
batch_download('目标网站地址')
```
**注意**:
- 这个示例假设所有子页面都是从主页面链接出来的。实际场景可能会更复杂,例如通过CSS选择器、JavaScript等动态获取链接。
- 对于大量或频繁的抓取,可能需要遵守网站的Robots协议,并尊重版权。
阅读全文