这两天微博有个热搜——你生日那天的宇宙,看上去很有趣,点进去链接发现是 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制作小工具一键查询图片!相关推荐

  1. python制作小工具_利用Python制作翻译小工具

    话不多说,直接上代码. Component文件: # coding:utf-8 from tkinter import * from tkinter import ttk from tkinter i ...

  2. 有关Python的小工具 - picture

    有关Python的小工具 - picture 读取图片 通过cv2.imread读取图片 通过cv2.imread读取比特流 通过Image.open读取图片 通过io.BytesIO读取比特流 保存 ...

  3. 用Python编写小工具下载OSM路网数据

    文章来源于Python大数据分析,作者费弗里 本文对应脚本已上传至Github仓库: https://github.com/CNFeffery/DataScienceStudyNotes[1] 1 简 ...

  4. python能制作游戏吗_如何用Python制作小游戏

    要想用Python制作小游戏,必须要安装一个插件Pygame 什么是Pygame Pygame是跨平台Python模块,专为电子游戏设计,包含图像.声音.建立在SDL基础上,允许实时电子游戏研发而无需 ...

  5. python 处理数据小工具_用Python这个小工具,一次性把论文作图与数据处理全部搞定!...

    原标题:用Python这个小工具,一次性把论文作图与数据处理全部搞定! 一入科研深似海-- 随着大学纷纷开学,"防脱发用生姜还是黑芝麻?", 研究僧们又开始为自己所剩无几的头发发愁 ...

  6. python制作搜索工具,深挖电脑里的小九九

    文章目录 前言 正文 开发环境 演示效果 开始代码,先导入模块 创建窗口 搜索栏 显示框 点击搜索按钮 1.获取关键字.文件类型 2.实现搜索功能 创建滚动窗口并布局到页面上 触发绑定事件 1.获取到 ...

  7. python软件设计数据分析统计服_学习笔记(一)-python制作数据分析工具

    本文使用numpy.pandas.scipy等依赖包,利用python制作数据分析工具,了解数据的特征分布.缺失.异常情况,实现数据的预处理.常用的描述性统计指标主要包括基本均值.中位数.最大最小值. ...

  8. 用Python制作翻译工具

    简单介绍 因为我英文不好,对接口.函数.结构体起名字的时候特别为难,因此我我打算使用Python写了一个工具在输入框输入中文,就可以生成Golang语言对应的接口.函数或接口体的写法:也可以切换到英文 ...

  9. Python制作小软件——4. 利用PyInstaller打包成exe文件

    在前面:Python制作小软件--3. 利用PyQt5实现界面中的功能,介绍完了Python中如何呼唤出我们的界面后 最后最重要的就是将我们做好的东西,全部打包成一个.exe可执行文件.这里我们使用的 ...

最新文章

  1. AI 医生正式上岗了?AI 医疗结合迎爆发点!
  2. yum clean all之后出错_“之后”英语的4种表达方式?
  3. logistics-6-decidedZone management
  4. CentOS中通过编译源码包的方式安装Git
  5. linux 进程的缓存区,Linux-标准I/O缓冲区位于进程中那个位置,堆区?栈区?还是其他位置?...
  6. 协议簇:TCP 解析: Sequence Number
  7. ThinkPHP链接 PgSQL
  8. pdf文字无法复制怎么办?unlock解密pdf
  9. IOS学习4 UIActionSheet的使用
  10. 创建数据库索引的几种方法
  11. window10 msys2 mingw32 编译openconnect客户端
  12. Jena TDB Assembler
  13. “天才少年” 27岁华为副总裁 百度CTO 成为阶下囚的传奇经历
  14. [转载] 晓说——第25期:看美国系列之“两极分化的黑人”
  15. 2021-06-29 连续非空子序列
  16. 2021年高教社杯全国大学生数学建模竞赛
  17. 【论文翻译】Fast R-CNN
  18. 带隔离变压器的DC/DC单端正激变换电路设计与Simulink仿真
  19. 全网软件库官网html源码共享站
  20. JavaWeb新手入门——HTML常用标签

热门文章

  1. ​生鲜也能卖尾货了?
  2. mybatis根据传进来的参数执行不同的SQL语句
  3. 微信小程序在线考试管理系统+后台管理系统
  4. 4-Arm PEG-DSPE 四臂-聚乙二醇-磷脂 可用于修饰小分子材料
  5. AltiumDesigner工具使用
  6. 测试岗外包4年终上岸,这段日子说起来都是泪啊
  7. 笔记本 续航测试软件,最低5小时起 这些超长续航笔记本你一定不知道
  8. 成也留存率败也留存率,5大要点助产品人提高留存率
  9. office文件自动保存
  10. 书法创作手札(一)《鬼谷子-揣篇第七》创作经验帖