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

目录

1.前言
2.操作步骤
3.结果

建了一个QQ群,大家可以在里边聊聊水色遥感数据下载和数据处理方面的事情:1087024529

设想如下场景:你需要在哥白尼数据开放访问中心(Copernicus Open Access Hub)下载挑选过后的200多幅Sentinel的影像,或者你要把你购物车里的数据全部下载。你要一个一个复制数据链接到下载器?或者在一个数据一个数据旁点击下载按钮,然后等下载器同时下完两幅,再来点击下载按钮,下载新数据?这是一个令人头疼的任务。而本博客就来解决这个问题。

1.前言

上回的博客里介绍到:使用IDM批量下载Sentinel(哨兵)卫星数据。博客里介绍通过从网页上一个一个复制数据的链接到TXT文件,然后在TXT文件中选择所有链接到IDM中下载。这种从网页上直接复制数据链接的方法,需要重复的Ctrl+C,Ctrl+V,十分麻烦。本博客介绍一种可以加快获取多数据链接的方法。

2.操作步骤

2.1 当根据条件检索数据后,在每个数据后会有一个加入购物车的选项。点击加入购物车图标(图中红色方框),方便的将想要的数据加入购物车。
在这里插入图片描述
2.2. 当点击加入购物车图标后,加入购物车图标即发生变化,显示数据处于购物车中:
在这里插入图片描述

2.3. 我这里随便加入了8幅影像到购物车。接下来,就是获取数据链接。打开购物车,可以看到所选的数据已经在里边。这时候我们将每页显示的数据数量调到最大150(尽量把数据显示在一页,如果一页显示不行,接下来的步骤就重复操作,数据较小就可以忽略这个问题)。

在这里插入图片描述
2.4. 在浏览器中打开开发人员工具(按F12),可以看到数据的链接全部在id号为’cart-row-attributes’的div标签下的a标签中。这时就想到了使用爬虫来获取页面的数据链接。
在这里插入图片描述
2.5. 在页面的空白处,点击鼠标右键,将网页另存为本地(当然有其他方法将网页的内容复制下来,只要获取到网页内容即可。直接通过网页的URL爬取可不容易实现)。

使用如下代码,获取购物车页面里数据的链接和ID号。

from bs4 import BeautifulSoup
import pandas as pd 
import requests

filepath='scihub.copernicus.eu.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',id='cart-row-attributes')
linklist=[]
idlist=[]
for df in divfind:
    #获取满足条件的div下的a标签
    #提取a标签的内容,即为数据链接
    link=df.find('a').string
    id=link.split('\'')[1]
    linklist.append(link)
    idlist.append(id)
    

linkdataframe=pd.DataFrame(linklist)
iddataframe=pd.DataFrame(idlist)


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

3.结果

程序运行后,会自动新建一个Excel文件(这里命名为Httpandid.xlsx)。打开Excel文件即可以看到里边的HTTP表存放数据链接,ID存放数据的ID号(HTTP表和ID表的数据是对应的)。
在这里插入图片描述
然后就可以复制数据的链接到IDM,参考:使用IDM批量下载Sentinel(哨兵)卫星数据里边的介绍,愉快进行数据下载了。

你要是对数据没那么挑剔,只要检索出来的数据就都下载下来,那么你就不用将数据加入购物车,直接将检索到数据的网页保存到本地,找到数据链接所处的标签(class为list-link selectable的div标签下的a标签中的内容),写个爬虫即可。

  • 8
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值