前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据集 | 地理空间数据云30m的DEM爬取

数据集 | 地理空间数据云30m的DEM爬取

作者头像
GIS与遥感开发平台
发布2022-04-29 08:50:05
9090
发布2022-04-29 08:50:05
举报
文章被收录于专栏:GIS与遥感开发平台

DEM数据是我们经常用到的一种数据,小编今天就带大家一块看一下怎么用python来爬取地理空间数据云的30m的DEM数据。

我们要爬取DEM数据首先还是要有一个地理空间数据云的账号。小伙伴们如果没有的话,还是需要申请一个的地理空间数据云的账号。

地理空间数据云的网址:

http://www.gscloud.cn/

我们今天主要使用的是python的selenium库。我们要爬取数据,还要配置一下selenium。

1

selenium配置

selenium是自动调用浏览器下载数据,因此不用担心网站的反爬虫,也不用进行复杂的一些设置IP代理之类的。

我们本次使用谷歌浏览器配合selenium进行爬取数据。除了下载谷歌浏览器以外,我们还需要下载chromedriver,并且chromedriver要与谷歌浏览器的版本对应。

我们在谷歌浏览器的地址栏输入:chrome://version/,就会跳出如下的界面:

我们可以看到,我们谷歌浏览器的版本为81版本,我们找对应的chromedriver就可以。

chromedriver下载地址:

http://chromedriver.storage.googleapis.com/index.html

进入网址:

我们进去开头为81的某个链接,

我们还要瞅一眼notes(下图),可以看到标黄处显示支持81版本的谷歌浏览器,我们就可以安心的下载这个chromedriver了。我们返回上一页,选择win32的版本下载下来就可以,路径我们要记住,接下来要使用到。

下面我们看一下就要运行python的代码,这里我们需要修改下载路径和chromedriver的路径还有填写我们自己的账号密码

代码语言:javascript
复制
from selenium import webdriver
import time

chrome_options = webdriver.ChromeOptions()
prefs = {
'download.default_directory':'修改为你的路径',#设置默认下载路径
"profile.default_content_setting_values.automatic_downloads":1
}
chrome_options.add_experimental_option('prefs', prefs)
#下面这行代码需要修改为你的chromedriver.exe路径
driver=webdriver.Chrome(executable_path='G:\chromedriver_win32\chromedriver.exe',\
                        chrome_options=chrome_options)
   
driver.get('https://www.gscloud.cn/accounts/login')

email=driver.find_element_by_xpath('//*[@id="userid"]')
#填写账号
email.send_keys('你的账号')
password=driver.find_element_by_xpath('//*[@id="password"]')
#填写密码
password.send_keys('你的密码')
captcha=driver.find_element_by_xpath('//*[@id="id_captcha_1"]')
captcha_sj=input('请输入验证码:').strip()
captcha.send_keys(captcha_sj)

dr_buttoon=driver.find_element_by_xpath('//*[@id="login-form"]/input[3]').click()
time.sleep(3)
DEM=driver.find_element_by_xpath('/html/body/div[3]/div[3]/div[6]').click()
time.sleep(3)
GDEMV30=driver.find_element_by_xpath('//*[@id="dataset-listview"]/div/div/ul/li[3]/div/a[3]').click()
time.sleep(3)
#总共有2261页数据
page_num=2261
page=1
while page<=page_num:
    print('当前下载第{}页'.format(page))
    for tr_num in range(3,13): 
        d_everypage='//*[@id="all_datasets_listview"]/div/table/tbody/tr[{0}]/td[9]/div/div/a[2]/span'.format(str(tr_num))
        download=driver.find_element_by_xpath(d_everypage)
        driver.execute_script("arguments[0].click();", download)
        time.sleep(20)  
    page += 1
    page_sr=driver.find_element_by_xpath('/html/body/div[2]/div/div[2]/div[2]/div/div[3]/div/div[2]/table/tbody/tr/td[10]/a/span/span/span')
    driver.execute_script("arguments[0].click();", page_sr)
    time.sleep(10)

代码运行以后,就会自动跳出谷歌浏览器的页面,我们把页面的验证码填到我们代码运行结果里面就可以啦!第一次运行有可能失败,重新运行一遍就好啦!

我们看看下载的数据,都是zip压缩包:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GIS与遥感开发平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档