igs网站里爬o文件和广播星历和tkinter使用

news/2024/5/10 15:48:17/文章来源:https://jokerak.blog.csdn.net/article/details/121002846

文章目录

  • 基础要求
  • 题目要求
  • 代码如下
  • 结果如下

基础要求

莫烦python–基础
python基础学习-个人博客
Tkinter 学习

题目要求

需求就是我要从这个网站里爬o文件和广播星历
武汉大学IGS数据中心
在这里插入图片描述

代码如下

import time
import urllib
from tkinter import *
import requests
from bs4 import BeautifulSoup
import os
import random
from tkinter.ttk import *# 假设是
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
}# 文件存储位置
dir = "E:\data"s = requests.Session()# 开始日期# igs观测站列表
select = []# 被选择的广播站
choose = ""def download(download_list, name):'''下载文件到指定位置:param name: 文件夹名称:param download_list::return:'''path = os.path.join(dir, name)# 如果下载路径不存在,则创建文件夹if not os.path.exists(path):# 创建文件夹os.makedirs(path)txt.insert(INSERT, "dir文件路径不存在,正在创建中\n")txt.insert(END, name + "下载开始,请稍等\n")for url in download_list:try:filename = os.path.join(path, get_randon_string() + get_filename(url))print("下载了--" + filename + "\n")urllib.request.urlretrieve(url, filename=filename)except Exception as e:txt.insert(END, "对不起下载失败--可能存在相同名字的文件名,或者网络问题")print(e)txt.insert(END, name + "下载结束\n")def get_randon_string():'''随机生成数字类型字符串:return: 随机字符串'''return str(random.randint(1, 50))def get_filename(url_str):'''根据url--获取文件名称:param url_str: url:return:'''try:return url_str[url_str.rfind('/') + 1:]except:print("文件名称寻找失败")return str(random.randint(1, 700)) + ".gz"def get_obs(choose, start_date, end_date):'''获取obs观测值:param choose: 选择:param start_date: 开始时间:param end_date:  截止时间:return:'''if choose.strip() == '':txt.insert(END, "选择的广播站错误\n")if not is_valid_date(start_date):txt.insert(END, "起始时间输入错误\n")if not is_valid_date(end_date):txt.insert(END, "起始时间输入错误\n")url = "http://www.igs.gnsswhu.cn/index.php/home/data_product/get_obs_data.html?src=IGS&start_date=" + start_date + "&end_date=" + end_date + "&sites%5B%5D=" + choose + "&order=site&format=o"data = s.get(url, headers=headers)if data.text.strip() == '':txt.insert(END, "广播星历没有任何数据\n")returnsubject = BeautifulSoup(data.text, "html.parser")download_list = []for item in subject.select(".site-item"):# 添加所有符合条件的下载地址temp = item.select("a")[0]["href"]download_list.append("http://wz-igs.oss-cn-beijing.aliyuncs.com/" + temp[temp.find('=') + 1:])# 开始下载download(download_list, "obs")def get_broadcast_ephemeris(start_date, end_date):'''获取广播新历:param start_date: 开始时间:param end_date:  截止时间:return:'''if not is_valid_date(start_date):txt.insert(END, "起始时间输入错误\n")if not is_valid_date(end_date):txt.insert(END, "起始时间输入错误\n")URL = "http://www.igs.gnsswhu.cn/index.php/home/data_product/get_brdc_data.html?src=IGS&start_date=" + start_date + "&end_date=" + end_datedata = s.get(URL, headers=headers)if data.text.strip() == '':print("广播星历没有任何数据")returnsubject = BeautifulSoup(data.text, "html.parser")# 下载链接download_list = []for item in subject.select(".am-success"):# 添加所有符合条件的下载地址temp = item.select("a")[0]["href"]download_list.append("http://wz-igs.oss-cn-beijing.aliyuncs.com/" + temp[temp.find('=') + 1:])# 开始下载文件download(download_list, "broadcast")def is_valid_date(times):'''判断日期格式是否正确:param times: 字符串的日期:return:'''try:time.strptime(times, "%Y-%m-%d")except:txt.insert(END, "输入日期的格式不合法哦,请重新检查\n")return Falsereturn Truedef calc(event):'''点击组合框的按钮:param event: 时间信息:return:'''global choosechoose = select[comb.current()]def init():'''初始化:return:'''url = "http://www.igs.gnsswhu.cn/index.php/home/data_product/igs.html"data = s.get(url, headers=headers)subject = BeautifulSoup(data.text, "html.parser")for item in subject.select("#sites-selector option"):select.append(item.text)start = "2021-10-01"
end = "2021-10-26"init()
root = Tk()
root.title('下载程序的窗口')
root.geometry('500x400')  # 这里的乘号不是 * ,而是小写英文字母 x
lb1 = Label(root, text='请输入日期正确的日期')
lb1.place(relx=0.5, rely=0.1, relwidth=0.5, relheight=0.1)# 第一个输入框--起始时间
inp1 = Entry(root)
inp1.place(relx=0.5, rely=0.2, relwidth=0.2, relheight=0.1)# 第二个输入框---截止时间
inp2 = Entry(root)
inp2.place(relx=0.8, rely=0.2, relwidth=0.2, relheight=0.1)btn1 = Button(root, text='下载.o 文件', command=lambda: get_obs(choose, inp1.get(), inp2.get()))
btn1.place(relx=0.5, rely=0.4, relwidth=0.2, relheight=0.1)# 方法二利用 lambda 传参数调用run2()
btn2 = Button(root, text='下载广播星历', command=lambda: get_broadcast_ephemeris(inp1.get(), inp2.get()))
btn2.place(relx=0.8, rely=0.4, relwidth=0.2, relheight=0.1)# 复选框
comb = Combobox(root, textvariable="选择测试站", values=select)
comb.place(relx=0.1, rely=0.2, relwidth=0.2, relheight=0.1)
comb.bind('<<ComboboxSelected>>', calc)# 在窗体垂直自上而下位置60%处起,布局相对窗体高度40%高的文本框# scroll = Scrollbar(root)
# scroll.place(relx=0.1, rely=0.6, relwidth=0.8, relheight=0.4)
txt = Text(root)
txt.place(relx=0.1, rely=0.6, relwidth=0.8, relheight=0.4)
# scroll.config(command=txt.yview)
# txt.config(yscrollcommand=scroll.set)
# txt.pack()txt.insert(END, "程序开始\n")
root.mainloop()

结果如下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_713253.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

seo技术_基础知识_网站pr值的意义_日思663.带你入门SEO基础知识

2019/9/6这篇文章来自36氪产品团队一次内部分享&#xff0c;按照惯例记录下来&#xff0c;也分享给大家~本文937字&#xff0c;阅读约9分钟从上上周开始&#xff0c;产品团队每周都会请一位小伙伴给大家做分享&#xff0c;主题不限&#xff0c;以自己擅长或感兴趣的方向为出发点…

如何测试网站服务器mysql数据库连接,如何测试网站服务器mysql数据库

如何测试网站服务器mysql数据库 内容精选换一换您可根据业务需要&#xff0c;参考下载全量备份文件&#xff0c;并通过备份文件进行本地存储备份或者恢复数据。备份文件不支持恢复到本地为Windows操作系统的数据库。由于开源备份工具(XtraBackup)目前仅支持x86包&#xff0c;不…

网站数据分析:多渠道归因模型

转载自&#xff1a;http://www.itongji.cn/article/060R2002013.html 众所周知&#xff0c;在Google Analytics中跟踪一个设备是没有问题&#xff0c;而且很完善&#xff0c;但是在多个设备间切换就不行了&#xff0c;因为设备中都有浏览器&#xff0c;网站分析工具会将cookie放…

网站用户的生命周期价值

转载自&#xff1a;http://www.itongji.cn/article/111429242013.html什么是网站用户的生命周期价值&#xff08;Lifetime Value&#xff0c;简称LTV&#xff09;&#xff0c;及为什么要使用LTV这个指标。其中主要阐述的是在SEM及网站推广的过程中不要仅关注于一次访问&#xf…

网站数据分析模型

转载自&#xff1a;http://www.itongji.cn/article/123130252013.html 网站分析方案能否彻底实施&#xff0c;最关键的在于是否有严密的方案&#xff0c;方案应该包括哪些内容呢&#xff1f;主要框架包括商业目标&#xff0c;围绕商业目标要解决的问题&#xff0c;需要什么数据…

理清网站数据分析思路导图

转载自&#xff1a;http://www.itongji.cn/article/1119293H013.html 下图是一个网站分析的生命周期示意图&#xff0c;在确认好分析需求并收集好我们所需要的数据后&#xff08;强调一下&#xff0c;明确分析需求很重要&#xff0c;这可以避免为了分析而分析&#xff09;&…

网站分析的数据来源

转载自&#xff1a;http://www.itongji.cn/article/101012142012.html Avinash Kaushik在他的《Web Analytics》一书中将数据的来源分为4部分&#xff1a;点击流数据&#xff08;Clickstream&#xff09;、运营数据&#xff08;Outcomes&#xff09;、调研数据&#xff08;Rese…

网站获取ip代码怎么写_大学生写论文必备技能:怎么免费获取外文文献并下载...

无论是毕业季&#xff0c;还是平时查取论文。相信同学们都会有这样的苦恼&#xff0c;那就是——在学校知网网站资源里可以轻松查找到中文文献&#xff0c;但外文文献想要获取却非常的艰难。要么是要收费&#xff0c;要么就是进不去网站。为了解决大家的烦恼&#xff0c;接下来…

查询网站服务器类型,网站服务器类型查询

网站服务器类型查询 内容精选换一换当您想要直接使用域名访问网站、Web应用程序或者云服务器时&#xff0c;可以通过为域名增加A类型记录集实现。更多关于记录集类型的介绍&#xff0c;请参见记录集类型及配置规则。已经完成网站或云服务器的搭建&#xff0c;并获取IPv4格式的I…

分享45个海量免费电子书下载网站

转载自&#xff1a;http://www.cnblogs.com/lhb25/archive/2011/03/11/1978243.html 随着网络和信息技术的快速发展&#xff0c;电子书越来越流行。以Amazon Kindle为代表的电子书阅读器的出现改变了人们传统的阅读方式&#xff0c;如同iPod改变人们听音乐一样。如今&#xff0…

百度爬虫爬到虚拟链接 网站被黑_什么是网络爬虫?原理是什么?种类有多少?...

ins ngadc前言 我相信很多人都听说过(网络)爬虫&#xff0c;但不清楚这到底是个什么概念。本文借助网上相关资料&#xff0c;进行简单地汇总整理。爬虫还是比较敏感&#xff0c;在简书发文章&#xff0c;竟然发不了。。。目录什么是网络爬虫网络爬虫的基本原理1、获取网页2、提…

cms php vue 开源_企业网站制作常用CMS网站内容管理系统推荐

现在做网站90%的都是采用cms网站管理系统&#xff0c;内容管理系统(CMS)是一种当下非常主流的网站建设系统&#xff0c;能够快速地帮助我们建立一个属于自己的网站&#xff0c;相比定制后台系统&#xff0c;主流的cms都是经过很多年持续更新&#xff0c;经过了大量用户不断检验…

机器学习数据挖掘-软件、网站、课程资源知识点汇总

转载自&#xff1a;http://blog.csdn.net/godenlove007/article/details/8899186 在学习机器学习的有关知识时&#xff0c;搜索到JerryLead的cnblog中的Machine Learning专栏&#xff0c;里面对于机器学习的部分算法和知识点讲解地很经典和透彻。所以Mark在这&#xff0c;多多学…

html title 不显示_SEO入门教程二:学习最基础的html代码知识

其实&#xff0c;做SEO并不一定要很懂代码&#xff0c;只要基础能看懂就行。当然如果你很懂代码&#xff0c;那是加分项&#xff0c;下面这些基础能看就行。首先&#xff0c;我们需要了解网页的基本结构&#xff0c;分为head和body两部分&#xff0c;中文解释头部和内容部分&am…

idea怎么调试jsp页面_JSP+Servlet+C3P0+Mysql实现的YCU movies电影网站

项目简介项目来源于&#xff1a;https://gitee.com/zhp0514/java_web_movie_website_project这次分享一个电影网站&#xff0c;页面炫酷&#xff0c;需要有一定的前端功底。该网站存在一些bug&#xff0c;感兴趣的可以自行改改&#xff0c;也可以私信我。本系统基于JSPServletC…

内存模型 linux,内存模型 - STM32F4 编程手册学习_Linux编程_Linux公社-Linux系统门户网站...

STM32F4编程手册学习2_内存模型1. 内存映射MCU将资源映射到一段固定的4GB可寻址内存上&#xff0c;如下图所示。内存映射将内存分为几块区域&#xff0c;每一块区域都有一个定义的内存类型&#xff0c;一些区域还有一些附加的内存类型。内存类型有以下几种&#xff1a;Normal处…

网站点赞 评论 回复 数据库设计

本文主要分享了我在设计评论模块中的一些心得&#xff0c;希望对读者有些许帮助。 关于这种常用功能&#xff0c;查了许多资料 又基于公司的业务场景 1.由用户发表作品 其他已注册用户 在浏览个用户发表的作品时可以进行 点赞 评论 &#xff08;同时可以撤销点赞&#xff09…

如何提高服务器响应的数据速度_提升网站服务器的响应速度的方法

很多朋友在使用服务器时都遇到过服务器响应缓慢的情况&#xff0c;那么我们该如何提升网站服务器的响应速度呢?接下来我们深圳葵芳的客服&#xff0c;就来为大家简单的介绍一下吧。尽可能的减少HTTP请求数从客户访问网站页面到整个页面内容完全展现出来&#xff0c;这其中要花…

vue seo关键词设置_网站文章中如何设置关键词才更有利于SEO优化?

文章内容在网站优化中占据重要的分量&#xff0c;文章内容的高质量会非常有助力网站排名提升&#xff0c;更能给网站带来更多的流量。那么在网站优化中&#xff0c;如何设置文章内容的关键词才能更利于网站SEO优化&#xff1f;一、文章的关键词要有合适的出现频率文章内容的关键…

怎么用百度搜索php网站,PHP简单获取网站百度搜索和搜狗搜索收录量的方法

本文实例讲述了PHP简单获取网站百度搜索和搜狗搜索收录量的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;获取网站百度搜索和搜狗搜索的收录量代码&#xff0c;可以用于获取网站域名在搜索引擎的收录数量&#xff0c;一直想找这个API但没找到&#xff0c;就在网…