你生日那天的宇宙有多美?Python制作小工具一键查询图片!
这两天微博有个热搜——你生日那天的宇宙,看上去很有趣,点进去链接发现是 NASA(美国航空航天局) 提供的一个网站(庆祝哈勃望远镜30周年),可以查询一下你生日那天哈勃望远镜拍到的太空图片。但是大概是用的人太多或者国内某些因素,网页加载很慢。因此,小笨聪写了个查询软件供大家体验一下啦。
微信公众号原文链接
需要用到的python库有:PyQt5,requests,lxml,openpyxl,pillow,以及一些Python自带的库。先看一下界面 :
具体怎么实现的呢?
1. 首先在网站上可以下载一个 excel 表格,表格大致这样:
里面记录了每个日期哈勃望远镜拍到的宇宙对应的介绍页链接,因此我们需要读取这个表格,
'''导入中的全年数据'''
def loadFullYearData(self, filepath):full_year_data = {}excel_data = load_workbook(filepath)sheet = excel_data.get_sheet_by_name('365')for idx, row in enumerate(sheet.rows):if idx > 366: breakif idx > 0: full_year_data[row[0].value.strftime('%Y-%m-%d')[5:]] = row[4].valuereturn full_year_data
2.然后根据用户输入的日期来获得对应的介绍页链接:
url = self.full_year_data.get(key)
3. 获得介绍页链接之后,通过 requests 库来请求它,并用 xpath 来提取我们需要的数据,即照片链接和照片的介绍,如下图红框所示:
xpath 的路径可以直接在浏览器里 copy,代码实现如下:
res = requests.get(url, headers=headers)
html_root = etree.HTML(res.text)
html = html_root.xpath('//*[@id="main-content"]/section/section/div[1]/div/div/div[2]')[0].xpath('./p')
# 提取介绍
intro = []
for item in html:intro.append(item.xpath('text()')[0])# 提取图片链接并下载idx = -1while True:image_url = html_root.xpath('//*[@id="main-content"]/section/section/div[1]/div/div/div[1]/div/a')[idx]image_url = ('https:' + image_url.xpath('@href')[0]).replace('imgsrc.hubblesite.org/hvi', 'hubblesite.org')if image_url.split('.')[-1] == 'jpg':breakidx -= 1
4. 接着,再根据图片链接进行下载就好啦(因为网站的图片加载实在太慢了,所以最好自己设置一下 retry ):
filename = 'tmp.%s' % image_url.split('.')[-1]
f = open(filename, 'wb')
session = requests.Session()
retry = Retry(connect=10000, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://', adapter)
session.mount('https://', adapter)
res = session.get(image_url, headers=headers, stream=True, verify=False)
for chunk in res.iter_content(chunk_size=1024): f.write(chunk)
f.close()
5. 最后,利用 PyQt5 再写个简单的可视化界面,把爬虫功能添加上去就行了。另外,大家可以使用 pyinstaller 库将代码打包成 exe 文件方便使用,顺便也练习一下怎么高效使用 pyinstaller 模块。
图片展示:
以上就是此次 Python 制作图片查询小软件的过程,微信公众号“学编程的金融客”后台回复“生日图片”即可获取源码。
微信公众号原文链接
欢迎关注微信公众号:学编程的金融客,作者:小笨聪
你生日那天的宇宙有多美?Python制作小工具一键查询图片!相关推荐
- python制作小工具_利用Python制作翻译小工具
话不多说,直接上代码. Component文件: # coding:utf-8 from tkinter import * from tkinter import ttk from tkinter i ...
- 有关Python的小工具 - picture
有关Python的小工具 - picture 读取图片 通过cv2.imread读取图片 通过cv2.imread读取比特流 通过Image.open读取图片 通过io.BytesIO读取比特流 保存 ...
- 用Python编写小工具下载OSM路网数据
文章来源于Python大数据分析,作者费弗里 本文对应脚本已上传至Github仓库: https://github.com/CNFeffery/DataScienceStudyNotes[1] 1 简 ...
- python能制作游戏吗_如何用Python制作小游戏
要想用Python制作小游戏,必须要安装一个插件Pygame 什么是Pygame Pygame是跨平台Python模块,专为电子游戏设计,包含图像.声音.建立在SDL基础上,允许实时电子游戏研发而无需 ...
- python 处理数据小工具_用Python这个小工具,一次性把论文作图与数据处理全部搞定!...
原标题:用Python这个小工具,一次性把论文作图与数据处理全部搞定! 一入科研深似海-- 随着大学纷纷开学,"防脱发用生姜还是黑芝麻?", 研究僧们又开始为自己所剩无几的头发发愁 ...
- python制作搜索工具,深挖电脑里的小九九
文章目录 前言 正文 开发环境 演示效果 开始代码,先导入模块 创建窗口 搜索栏 显示框 点击搜索按钮 1.获取关键字.文件类型 2.实现搜索功能 创建滚动窗口并布局到页面上 触发绑定事件 1.获取到 ...
- python软件设计数据分析统计服_学习笔记(一)-python制作数据分析工具
本文使用numpy.pandas.scipy等依赖包,利用python制作数据分析工具,了解数据的特征分布.缺失.异常情况,实现数据的预处理.常用的描述性统计指标主要包括基本均值.中位数.最大最小值. ...
- 用Python制作翻译工具
简单介绍 因为我英文不好,对接口.函数.结构体起名字的时候特别为难,因此我我打算使用Python写了一个工具在输入框输入中文,就可以生成Golang语言对应的接口.函数或接口体的写法:也可以切换到英文 ...
- Python制作小软件——4. 利用PyInstaller打包成exe文件
在前面:Python制作小软件--3. 利用PyQt5实现界面中的功能,介绍完了Python中如何呼唤出我们的界面后 最后最重要的就是将我们做好的东西,全部打包成一个.exe可执行文件.这里我们使用的 ...
最新文章
- AI 医生正式上岗了?AI 医疗结合迎爆发点!
- yum clean all之后出错_“之后”英语的4种表达方式?
- logistics-6-decidedZone management
- CentOS中通过编译源码包的方式安装Git
- linux 进程的缓存区,Linux-标准I/O缓冲区位于进程中那个位置,堆区?栈区?还是其他位置?...
- 协议簇:TCP 解析: Sequence Number
- ThinkPHP链接 PgSQL
- pdf文字无法复制怎么办?unlock解密pdf
- IOS学习4 UIActionSheet的使用
- 创建数据库索引的几种方法
- window10 msys2 mingw32 编译openconnect客户端
- Jena TDB Assembler
- “天才少年” 27岁华为副总裁 百度CTO 成为阶下囚的传奇经历
- [转载] 晓说——第25期:看美国系列之“两极分化的黑人”
- 2021-06-29 连续非空子序列
- 2021年高教社杯全国大学生数学建模竞赛
- 【论文翻译】Fast R-CNN
- 带隔离变压器的DC/DC单端正激变换电路设计与Simulink仿真
- 全网软件库官网html源码共享站
- JavaWeb新手入门——HTML常用标签