天天看點

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

 概述

      為什麼會突然寫這樣的一個腳本呢?因為今天同僚突然說到:宇宙這麼大,我們人這麼渺小,那麼在别人眼裡我們的地球是什麼樣子的?問到這個話題我想很多人都會想起地球儀或者一系列的電視劇!藍白相間是吧!是以今天實時擷取地球衛星圖,設定為咱們的電腦桌面,這樣就可以無時無刻看到它的變化!廢話不多說,讓我們愉快地開始吧~

開搞

開發工具

Python版本:3.6.4

相關子產品:

requests子產品;

pywin32子產品;     

安裝這些子產品就不用多說了吧!直接pip就可以了!每次怕新手不會,是以多說一些哈!

原理

首先,我們需要爬取目前的地球衛星圖,然後再把爬取到的地球衛星圖設為桌面背景,最後實作每隔一段時間重複以上兩個步驟。

OK,理清思路就可以開始幹了~

這裡,我們選擇從日本himawari-8氣象衛星官網爬取地球衛星圖:

http://himawari8.nict.go.jp/      

簡單抓包可以發現某時刻的地球衛星圖網頁連結如下圖所示:

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

​​

即構成規則為:

http://himawari8-dl.nict.go.jp/himawari8/img/D531106/1d/550/ + GMT時間_0_0.png      
你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

注意,某時刻的地球衛星圖更新到該網站上是有時延的(約一小時),且每隔十分鐘更新一張新拍到的地球衛星圖,是以我們的爬蟲代碼實作如下:

'''爬取桌面'''
def crawlWallpaper(cache_dir='download'):
  checkDir(cache_dir)
  url_base = 'http://himawari8-dl.nict.go.jp/himawari8/img/D531106/1d/550/'
  date = datetime.datetime.utcnow().strftime('%Y/%m/%d/')
  # 衛星圖更新到網站上是有時延的
  hour = str(int(datetime.datetime.utcnow().strftime('%H')) - 1).zfill(2)
  minute = str(datetime.datetime.utcnow().strftime('%M'))[0] + '0'
  second = '00'
  ext = '_0_0.png'
  picture_url = url_base + date + hour + minute + second + ext
  res = requests.get(picture_url)
  with open(os.path.join(cache_dir, 'cache_wallpaper.png'), 'wb') as f:
    f.write(res.content)
      

OK,現在我們已經爬取到了算是“最新”的地球衛星圖了,接下來就是調用pywin32子產品實作自動換電腦桌面功能了。具體而言,代碼實作如下:

'''換桌面'''
def setWallPaper(imagepath='download/cache_wallpaper.png'):
  keyex = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, win32con.KEY_SET_VALUE)
  win32api.RegSetValueEx(keyex, "WallpaperStyle", 0, win32con.REG_SZ, "0")
  win32api.RegSetValueEx(keyex, "TileWallpaper", 0, win32con.REG_SZ, "0")
  win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, imagepath, win32con.SPIF_SENDWININICHANGE)
      

最後,如何讓電腦每隔十分鐘就運作一次上面的程式呢?

寫個死循環?那好像有點蠢?

其實我們隻需要在windows上設定個定時任務就可以啦~下面以win10為例說明設定方式:

① 打開任務計劃程式

注:win+R鍵,然後輸入taskschd.msc回車運作就行了~      

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!
你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

② 建立任務

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

③ 建立觸發器

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

④ 建立操作

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

最後點選确定就OK啦~

注:把寫好.py檔案字尾改成.pyw就得到earchWallpaper.pyw檔案了      

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!
效果

  ​

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

​​

你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!
你見過衛星眼裡的地球嗎?帶你實時擷取地球衛星圖并設為桌面背景!真的很美!

​​

是真的很美,希望能有機會能親眼看一下這樣的地球,就像宇航員那樣!說不定上去一趟還能治好我的脫發問題!

需要完整代碼,教程的

①兼職交流,行業咨詢、大佬線上專業解答

②Python開發環境安裝教程

③Python400集自學視訊

④軟體開發常用詞彙

⑤Python學習路線圖

⑥3000多本Python電子書

如果你用得到的話可以直接拿走,點選領取。不友善點連結的加群:948351247