IDM+Python批量自动化下载哨兵5号数据

目录

操作步骤

1、检索数据,将网页另存为html文件

2、使用python的soup库解析html文件,取得链接地址

3、通过IDM批量下载。

附录

一、如何使用Pycharm安装pandas

二、配置IDM用于哨兵数据下载

1、新建站点

2、对同一资源的最大连接数设为1。

3、新建队列,队列同时下载文件数量设为1。

​参考资料


通过Python获取数据链接地址,通过IDM实现批量下载。

最后修改2021/4/2 Evelyn Song

本文参考hyzhao_RS的《使用Python快速获取哥白尼数据开放访问中心购物车里的数据下载链接》和《使用IDM批量下载Sentinel(哨兵)卫星数据》两篇文章,根据需求做了一些小改动,原文中提供更详细的说明,本文仅为记录本次工作,原文见参考文章一、二。

操作步骤

1、检索数据,将网页另存为html文件

  1. 输入检索时间、产品、位置等信息后,确认无误点击搜索按钮,等待结果加载。更改products per page参数,尽量使所有结果在同一页显示,将页面另存为html文件。(数据实在太多,可以存为多个文件,依次处理即可。)
  2. IDM+Python批量自动化下载哨兵5号数据_第1张图片
  3. IDM+Python批量自动化下载哨兵5号数据_第2张图片
  4. 2、使用pythonsoup库解析html文件,取得链接地址

第三方库:pandas+bs4(安装见附录)

Python代码如下:参考hyzhao_RS代码,根据需求做了一些修改。

from bs4 import BeautifulSoup
import pandas as pd


filepath = 'Sentinel-5P Pre-Operations Data Hub.html'  # 保存的网页,自己按照实际保存位置调整
with open(filepath, 'rb') as f:
    ss = f.read()
soup = BeautifulSoup(ss, 'html.parser')

# 获取所有id为cart-row-attributes的div标签
divfind = soup.find_all('div', attrs={"class": "list-link selectable"})
linklist = []
# idlist = []
for df in divfind:
    # 获取满足条件的div下的a标签
    # 提取a标签的内容,即为数据链接
    link = df.find('a').string
    # id = link.split('\'')[1]
    linklist.append(link)
    # idlist.append(id)

divfind = soup.find_all('div', attrs={"class": "list-item-title ng-binding"})
itemList = []
for df in divfind:
    item = df
    itemList.append(item)
 
linkDataframe = pd.DataFrame(linklist)
# iddataframe = pd.DataFrame(idlist)
itemDataframe = pd.DataFrame(itemList)

# 将数据链接写出
with pd.ExcelWriter('Httpandid.xlsx') as hifile:
    linkDataframe.to_excel(hifile, sheet_name='URL', header=False, index=False)
    # iddataframe.to_excel(hifile, sheet_name='ID', header=False, index=False)
    itemDataframe.to_excel(hifile, sheet_name='fileName', header=False, index=False)

3、通过IDM批量下载。

安装和配置IDMGoogle chrome商店有官方的IDM插件,免费试用30天。

需要注意IDM用于哨兵数据下载时,需要一些特殊设置。见附录二。

python生成的链接地址复制,在IDM工具栏中打开:任务->从剪贴板中添加批量下载,IDM自动识别URL,不必理会error提示。

IDM+Python批量自动化下载哨兵5号数据_第3张图片

根据需要选择保存位置,选择需要下载的文件

IDM+Python批量自动化下载哨兵5号数据_第4张图片

 确认无误后点击确定,将文件添加到设置好的哨兵数据专用下载队列中,确定。选择目标下载队列,右键点击,选择现在开始,即可开始下载。

IDM+Python批量自动化下载哨兵5号数据_第5张图片   IDM+Python批量自动化下载哨兵5号数据_第6张图片

附录

一、如何使用Pycharm安装pandas

点击FileSettings,点击ProjecttestProject Interpreter,如果列表中没有pandas,就选择右边的+号,输入pandas,确认无误,点击Install Package,等待安装自动完成即可。其它库类似。

IDM+Python批量自动化下载哨兵5号数据_第7张图片

IDM+Python批量自动化下载哨兵5号数据_第8张图片

除此之外,也可以采用pip安装,在pycharm的命令行中输入pip install pandas 回车,即可完成安装。

二、配置IDM用于哨兵数据下载

需要注意IDM用于哨兵数据下载时,需要一些特殊设置。

1、新建站点

下载->选项->站点管理,新建,通过下拉框选择https://,输入服务器地址,用户名,密码等信息,确认。

IDM+Python批量自动化下载哨兵5号数据_第9张图片 IDM+Python批量自动化下载哨兵5号数据_第10张图片 

2、对同一资源的最大连接数设为1

下载->选项->连接,新建,输入服务器地址,通过下拉框选择https://,最大连接数设为1

3、新建队列,队列同时下载文件数量设为1

A. 新建队列,输入队列名称,保存。

IDM+Python批量自动化下载哨兵5号数据_第11张图片 IDM+Python批量自动化下载哨兵5号数据_第12张图片

B.右键,编辑队列,修改为同时下载 1 个文件

IDM+Python批量自动化下载哨兵5号数据_第13张图片参考资料

使用Python快速获取哥白尼数据开放访问中心购物车里的数据下载链接

使用IDM批量下载Sentinel(哨兵)卫星数据

Python3+pycharm安装教程

你可能感兴趣的:(遥感数据获取,python,网络爬虫)