第一个for循环输入年份
第二个while循环遍历该年下的所有数据条目并提取符合月份要求的数据条目信息

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import Bydef out_excel(in_list,out_workspace,filename):#输出符合条件的遥感影像条目import osresult_path=os.path.join(out_workspace,filename)result=open(result_path,'w')for m in range(len(in_list)):for n in range(len(in_list[m])):result.write(str(in_list[m][n]))result.write('\t')result.write('\n')result.close()def extract_data(satellite,num,cloud,year_range,month_range):#num是条带号和行编号,比如num=[123,40][x_num,y_num]=numyear=[str(i) for i in year_range]#各个卫星及其对应的表单网址,如有需要可以自行添加新卫星的名称和对应网站dict1={}dict1['LT4_5']='http://www.gscloud.cn/sources/accessdata/243?pid=1'#TM传感器dict1['LC8']='http://www.gscloud.cn/sources/accessdata/411?pid=263'#OLI传感器dict1['LE7_off']='http://www.gscloud.cn/sources/accessdata/241?pid=263'#ETM传感器dict1['LE7_on']='http://www.gscloud.cn/sources/accessdata/242?pid=1'#ETM传感器#driver.get(dict1[satellite])time.sleep(3)B=driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/table/tr[1]/td[3]/div/input')B.send_keys(str(x_num))C=driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/table/tr[1]/td[4]/div/input')C.send_keys(str(y_num))E=driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/table/tr[1]/td[6]/div/input')E.send_keys(str(cloud))r=[]for j in range(len(year)):D=driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/table/tr[1]/td[5]/div/input')D.clear()D.send_keys(year[j])D.send_keys(Keys.ENTER)time.sleep(3)#跳过空条目的年份q=driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/table/tr[3]/td').textif str(q)=="没有记录!":continuewhile True:#把同一页每一行数据的信息存入list1中;list1=[[数据标识],[日期],[云量],[数据有无]]list1=[[],[],[],[]]x=driver.find_elements_by_xpath('/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/table/tr')for i in range(3,len(x)+1):date=driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/table/tr[{}]/td[5]'.format(i)).textmonth=date.split('-')[1]if int(month)>=month_range[0] and int(month)<=month_range[1]:biaoshi=driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/table/tr[{}]/td[2]'.format(i))cloud=driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/table/tr[{}]/td[6]'.format(i))youwu=driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[2]/div[2]/div[2]/div[1]/table/tr[{}]/td[9]'.format(i))list1[0].append(biaoshi.text)list1[1].append(date)list1[2].append(cloud.text)list1[3].append(youwu.text)print(list1)for k in range(len(list1[0])):n=[][n.append(i[k]) for i in list1]r.append(n)#判断是否可以往下翻页,可以的话就翻页i=driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[1]/div[2]/div[2]/div[2]/div[3]/div[2]/table/tr/td[10]/a')if i.get_attribute("class")=="l-btn l-btn-plain":i.click()time.sleep(4)else:breakreturn rsatellite_list=['LT4_5','LE7_on','LE7_off','LC8']#这里添加你想要搜索的卫星
year=[str(i) for i in range(2001,2004)]#这里添上需要的年份
driver=webdriver.Chrome(executable_path=r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
out_datalist=[]
for satellite in satellite_list:r=extract_data(satellite,[124,39],10,year,[6,8])out_datalist+=r
out_excel(out_datalist,r'C:\Users\23932\Desktop\毕设','kk.xls')

条件是,6,8月;云量小于10%,条带号和行列号是124/039,年份2001-2003年。爬取结果如下:

有了数据标识信息,我们可以进一步用爬虫的方式批量下载所需要的遥感影像(从地理空间数据云上批量下载遥感影像)

【爬虫】根据月份从地理空间数据云上爬取遥感影像信息相关推荐

  1. python爬虫遇到验证码的处理方法(以爬取中国执行信息公开网为例)

    朋友们大家好,python爬虫是在学习python时比较容易上手的学习方式,爬虫的思路简要以下几点: 1.获取需要爬取页面的网址,并且对网页内容进行分析.(主要就源代码讨论,如果我们需要的内容没有在源 ...

  2. 爬虫第5课-从QQ音乐上爬取周杰伦前5页歌词

    第一步:分析问题,明确目标 需求就是把关卡内的代码稍作修改,将周杰伦前五页歌曲的歌词都爬取下来,结果就是全部展示打印出来. 第二步:写代码 Network - XHR-client_search - ...

  3. 利用爬虫、SMTP和树莓派3B发送邮件续集(爬取墨迹天气预报信息)

    -----------------------------------------------学无止境----------------------------------------------- 前 ...

  4. python爬虫,爬取遥感影像瓦片并自动拼接

    效果: 实现思路: 首先根据经纬度范围确定能够下载的瓦片最高等级(影像最大分辨率),然后下载瓦片,将瓦片按照顺序拼接起来  源代码: urllib3 == 1.26.7 requests == 2.2 ...

  5. [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(三) —— 数据的持久化——使用MongoDB存储爬取的数据

    上一篇:[Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(二) -- 编写一个基本的 Spider 爬取微博用户信息 在上一篇博客中,我们已经新建了一个爬虫应用,并简单实现了爬取一位微 ...

  6. smtp在线发送邮件_基于树莓派3B,利用爬虫、SMTP和发送邮件amp;amp;(爬取墨迹天气预报信息)...

    转载请注明: 利用爬虫.SMTP和树莓派3B发送邮件&续集&(爬取墨迹天气预报信息) - 永怀一颗学徒的心 - 博客园​www.cnblogs.com ZXPXBB:基于树莓派3B,利 ...

  7. 【Python爬虫】爬取企业专利信息

    本来是个美好的周末的,但是周五晚上领导给了一个公司名称的Excel,让把这些公司的专利信息爬取下来.本文记录了爬取企业专利信息的心酸过程.码字不易,喜欢请点赞!!! 一.找寻目标网页 在接到这个任务之 ...

  8. Python爬虫新手入门教学(十):爬取彼岸4K超清壁纸

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  9. Python爬虫新手入门教学(十七):爬取yy全站小视频

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  10. 小白都能看明白的Python网络爬虫、附上几个实用的爬虫小例子: 爬取豆瓣电影信息和爬取药监局

    文章目录 网络爬虫 爬虫的基础知识 爬虫分类 requests模块 爬虫的简单案例 简单的收集器 爬取豆瓣电影信息 爬取药监局 返回数据类型 数据解析 爬取糗事百科图片(正则表达式) xpath解析数 ...

最新文章

  1. Linux下使用ssh密钥实现无交互备份
  2. 主流Java数据库连接池比较及前瞻
  3. 【django轻量级框架】云端系统之Django框架
  4. python 处理xml pandas_Python数据处理分析,解决pandas中所有的Excel疑难杂症(上)
  5. 抓wifi包工具linux,测试工具之在Ubuntu使用Wireshark抓无线数据包
  6. c++类的静态成员特性
  7. 面向对象 抽象(abstract)
  8. 仿美团实现地域选择和城市列表
  9. 如何把手变成手控_手把手教您如何在生产环境直接web级设计图形报表
  10. 关于我使用的angular.js的上传---FileUploader
  11. vb全局热键的写法(占很少的资源)
  12. 基于JavaEE的班级管理系统设计与实现_信息管理__JSP网站设计_SQLServer数据库设计
  13. android 修改机型,教你一个无需Root就能修改手机型号的简单方法
  14. 【案例学习】最大锁具制造商怎样使用 Docker?
  15. uni-app实现实时获取当前时间日期
  16. FrontEnd笔记 -- Vue 核心
  17. 比你拼命的人多的是,最可怕的是比你牛的人比你还拼命(每天看一段一个月刚刚好)
  18. 信息安全技术之08之设备与环境安全测试卷
  19. F1 micro macro 区别和详解
  20. cron 每两周执行_如何每两周/月/天执行一次cron作业

热门文章

  1. java两级缓存框架J2cache
  2. dev-stack安装openstack
  3. 【2】嵌入式TCP/IP协议——————Art-Net处理流程
  4. 循迹避障小车制作第一篇(tb6612模块与降压模块的使用)
  5. Git克隆仓库代码至本地
  6. 企业级静态代码分析工具清单
  7. Android车载方案公司,你该何去何从?
  8. Microsemi Libero使用技巧5——使用FlashPro生成stp程序文件
  9. JavaScript笔记(菜鸟教程)
  10. 多国语言解决方案gnu.gettext + poedit