Geektool 使用 python+beautifulsoup 抓取天气显示

闲来无事,就想着捣鼓捣鼓电脑,想在电脑桌面实时显示天气状况.就用 geektool + python + beautifulsoup 写了一个抓取天气网站的脚本来显示.

效果

先看实现出来的效果


image

实现思路

用 python 去爬取天气网站的内容,解析抓取到的内容,提取今日的温度信息和天气天气,然后显示在 geektool 上面

天气网站

我这边选用的是 weather channel
在网站里面把地址切换到你想抓取的地区.

image

如图,可以看到实时温度现在

<div class="today_nowcard-temp"><span class="">25<sup>°</sup></span></div>

所以我们只要抓取 class为 today_nowcard-temp的标签,获取标签下面的文本内容 就是我们想要的温度信息.
同理天气状况 只要抓取

<div class="today_nowcard-phrase">晴朗</div>

的内容

准备开发

使用 beautifulsoup 去抓取页面内容.所以我们需要安装.由于 geektool 使用python 的版本是 2.7.10的.所以我们要在 python2.7里面安装 beautifulsoup.
安装命令

python -m pip install beautifulsoup4

然后查看有没有安装成功

python -m pip list

如果有显示 beautifulsoup4的包就是安装成功了.如果没有的话就没有安装成功.

如果你那么不幸运没有安装成功.就只能去
beautifulsoup download 去下载源码.
然后切换到beautifulsoup的setup.py 的命令目录
执行

python setup.py build
python setup.py install

执行成功后
在查看安装的包,就看到安装成功了.

执行脚本

#!/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 里面修改样式就好了
天气信息同理

原博地址 Geektool 使用 python+beautifulsoup 抓取天气显示

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 比如,当你在写文案的时候,你会知道方案的每一部分都是针对谁的,你甚至会单独为EB写一份摘要;当客户提问题的时候,你...
    again2017阅读 237评论 0 0
  • 2017.1.8. 感恩 D16: 1、感恩最近的工作,让我的论文有足够的材料参考。 2、感恩今天在麦当劳的独处时...
    走路带风的女魔头阅读 38评论 0 0
  • 所以说我们的默契何处来。就连酸甜苦辣的喜好都这样雷同。我以为你会首选辣,没想到,也是苦,而且是苦瓜,苦咖啡,苦巧克...
    考拉小巫Daniel阅读 298评论 4 1