【Python实例】批量下载网页数据
【Python实例】批量下载网页数据
准备:依赖库安装
# 激活环境
conda activate myenv3.10
# 下载依赖库包
conda install BeautifulSoup
conda install -c conda-forge beautifulsoup4
终端下载界面如下:
案例1:下载全球降水数据
数据概述
数据下载-GPM IMERG Final Precipitation L3 1 day 0.1 degree x 0.1 degree V07 (GPM_3IMERGDF)(需要登陆Earth Data下载数据)
时间范围:1998-01-01 to 2024-07-01
数据分辨率:0.1°×0.1°
数据下载
为了批量下载网页中所有后缀为 .nc4 的数据文件,你可以使用 Python 的 requests 库和 BeautifulSoup 解析网页内容,并结合 wget 或 requests 来下载数据文件。
步骤:
- 从网页获取所有 .nc4 文件的链接。
- 逐个下载这些文件并保存到指定目录。
Python代码如下:
import os
import requests
from bs4 import BeautifulSoup
# 定义要下载的URL和保存目录
url = "https://gpm1.gesdisc.eosdis.nasa.gov/data/GPM_L3/GPM_3IMERGDF.07/2020/01/"
save_dir = "./gpm_data/" # 保存文件的本地目录
# 创建保存目录,如果不存在
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 获取网页内容
response = requests.get(url)
if response.status_code != 200:
print(f"无法访问网页,状态码: {response.status_code}")
exit()
# 使用BeautifulSoup解析网页
soup = BeautifulSoup(response.content, 'html.parser')
# 获取所有以.nc4结尾的链接
nc4_links = []
for link in soup.find_all('a'):
href = link.get('href')
if href and href.endswith('.nc4'):
nc4_links.append(url + href)
# 下载每一个.nc4文件
for nc4_link in nc4_links:
file_name = os.path.join(save_dir, nc4_link.split('/')[-1]) # 获取文件名
print(f"正在下载 {file_name} ...")
# 下载文件
with requests.get(nc4_link, stream=True) as r:
r.raise_for_status() # 检查请求是否成功
with open(file_name, 'wb') as f:
for chunk in r.iter_content(chunk_size=8192):
f.write(chunk)
print(f"{file_name} 下载完成!")
print("所有.nc4文件下载完成。")
参考
原文地址:https://blog.csdn.net/qq_44246618/article/details/143797739
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!