閑來無事,就想著搗鼓搗鼓電腦,想在電腦桌面實時顯示天氣狀況.就用 geektool + python + beautifulsoup 寫了一個抓取天氣網站的腳本來顯示.
效果
先看實現出來的效果
image
實現思路
用 python 去爬取天氣網站的內容,解析抓取到的內容,提取今日的溫度信息和天氣天氣,然后顯示在 geektool 上面
天氣網站
我這邊選用的是 weather channel
在網站里面把地址切換到你想抓取的地區(qū).
image
如圖,可以看到實時溫度現在
<div class="today_nowcard-temp"><span class="">25<sup>°</sup></span></div>
所以我們只要抓取 class為 today_nowcard-temp
的標簽,獲取標簽下面的文本內容 就是我們想要的溫度信息.
同理天氣狀況 只要抓取
<div class="today_nowcard-phrase">晴朗</div>
的內容
準備開發(fā)
使用 beautifulsoup
去抓取頁面內容.所以我們需要安裝.由于 geektool 使用python 的版本是 2.7.10的.所以我們要在 python2.7里面安裝 beautifulsoup.
安裝命令
python -m pip install beautifulsoup4
然后查看有沒有安裝成功
python -m pip list
如果有顯示 beautifulsoup4的包就是安裝成功了.如果沒有的話就沒有安裝成功.
如果你那么不幸運沒有安裝成功.就只能去
beautifulsoup download 去下載源碼.
然后切換到beautifulsoup的setup.py 的命令目錄
執(zhí)行
python setup.py build
python setup.py install
執(zhí)行成功后
在查看安裝的包,就看到安裝成功了.
執(zhí)行腳本
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import urllib
import os
from bs4 import BeautifulSoup
import re
if __name__ == '__main__':
resp=urllib.urlopen('https://weather.com/zh-CN/weather/today/l/5ef652409badc75c97292b401c6db8e8e55a3157f300dc0997bea96343e4a20a')
soup=BeautifulSoup(resp,'html.parser')
tagToday=soup.find('div',attrs={'class':'today_nowcard-temp'})
print(tagToday.span.get_text())
可以看到 geektool 輸出溫度信息了,然后在 geektool 里面修改樣式就好了
天氣信息同理