你生日的那天宇宙

【导语】:近日NASA发布了一个很有趣的活动,在你生日的那天哈勃望远镜看到的是一片什么样的宇宙?
在这里插入图片描述
美国NASA在1990年将哈勃太空望远镜送上宇宙。多年来,哈勃望远镜在太空里拍取了许多珍贵的图像,今年是哈勃望远镜服役将满30周年,NASA公开了366张珍贵图像,只要上官网选择你的出生日期,就能看到生日当天哈勃所拍下的宇宙图像。
官网地址
输入月份和天数就可以获取图片

作为一个程序员来说会点击直接下载吗。一张能够满足我们吗?

不可能的

那么接下来

用我们程序员的想法来获取图片。

首先

在这里插入图片描述
打开F12进入开发者模式进去瞧瞧,有个csv文件,干嘛的看看
在这里插入图片描述
哇哦,这不是我们有获取的 东西吗?直接下载吧。省时又不费力
链接都要了直接复制图片网址进行查看吧。OK 结束!

你以为昨晚这一步就完了。不,当然不是

这才是开始!

对csv进行处理,
在这里插入图片描述
已处理好进行处理

#_*_coding:utf-8_*_
#作者       :  Deth
#创建时间    : 2020/3/30 23:18
#文件       : Hubble. py
# IDE       : PyCharm
import requests
import pandas as  pd
import time



def get_url(month,day):
    """
    Image: 图片地址
    Name:名字
    Caption:简介
    URL: html
    Year:拍摄日期
    Month:月份
    Day: 天
    """
    df = pd.read_csv('./data/Date.csv')
    # print(df.columns)
    try:
        img_info = df[(df['Month']==month) & (df['Day']==day)].values.tolist()
        downloadFile(name= img_info[0][2],url= img_info[0][1])
    except:
        print('日期错误,请重新输入日期:')
        main()

def downloadFile(name, url):
    headers = {'Proxy-Connection': 'keep-alive'}
    r = requests.get(url, stream=True, headers=headers)
    length = float(r.headers['content-length'])
    print('图片大小','{:.2f}'.format(length/1024/1024),'M')
    f = open('./image/%s.jpg'%name , 'wb')
    count = 0
    count_tmp = 0
    time1 = time.time()
    #下载完成才存到硬盘上,可以用Response.iter_content 来边下载边存硬盘
    for chunk in r.iter_content(chunk_size=1024):
        # print(chunk)
        if chunk:
            f.write(chunk)
            count += len(chunk)
            if time.time() - time1 > 2:
                p = count / length * 100  #下载多少百分比
                speed = (count - count_tmp) / 1024 / 1024 / 2  #,每秒下载速度
                count_tmp = count
                print(name + ': ' +'{:.2f}'.format(p) + '%' + ' 下载速度: ' + '{:.2f}'.format(speed) + 'M/S')
                time1 = time.time()
    f.close()
    print('下载完成%s:'%name)

def main():
    month = int(input('输入月份:'))
    day = int(input('输入日期:'))
    get_url(month,day)

if __name__ == '__main__':
    main()

效果展示

在这里插入图片描述
结束
相关数据和代码都在百度网盘链接:
提取码:siaw

发布了8 篇原创文章 · 获赞 18 · 访问量 2084

猜你喜欢

转载自blog.csdn.net/weixin_41900803/article/details/105223029
今日推荐