40行Python代码实现天气预报和每日鸡汤推送功能


Posted in Python onFebruary 27, 2020

情人节刚过去几天,但是这和我们程序员有什么关系呢,对我们来说,万物皆对象。但是啊,小编为了讨得仰慕已久的女神的欢心(真香),便用python爬取了爱词霸网站的每日一句和天气预报网站的天气预报,并且每天定时将内容推送到女神的手机短信中(代码实现,不需要短信费哦)。

好东西要学会分享,因此小编打算分三个步骤来教大家实现,最后会给出源代码。

第一步,实现爬取爱词霸网站的每日一句: 爱词霸的每日一句包括了英文版和中文版。爬取下来实际上4行有效代码就能搞定,不过为了提高代码的重用性,就将这个功能封装成了一个函数,以后需要时候用一行代码调用它便行了。下面贴出第一步的源代码,注释写得很详细了,有不懂的可以在文章下面提问哦。

# 小技巧:pycharm中,alt+enter快捷键可快速安装缺失库
import json
import requests

# 爬取爱词霸每日鸡汤
def get_iciba_everyday_chicken_soup():
 url = 'http://open.iciba.com/dsapi/' # 词霸免费开放的jsonAPI接口
 r = requests.get(url) 
 all = json.loads(r.text) # 获取到json格式的内容,内容很多
 # print(all) # json内容,通过这行代码来确定每日一句的键名
 Englis = all['content'] # 提取json中的英文鸡汤
 Chinese = all['note'] # 提取json中的中文鸡汤
 everyday_soup = Englis+'\n'+Chinese # 合并需要的字符串内容
 return everyday_soup # 返回结果

print(get_iciba_everyday_chicken_soup())

上面代码执行结果截图如下:成功爬取每日鸡汤,第一步实现。

40行Python代码实现天气预报和每日鸡汤推送功能

第二步,爬取天气预报网站的天气情况!

需要爬取的是天气网站的数据:http://www.tianqi.com/ 实现这个功能的所有代码也封装在了一个函数里面了,其实有效代码不到20行。调用函数的时候传入的参数改为对应城市的拼音就可。

import urllib.request # 需要安装 urllib 库
from bs4 import BeautifulSoup #需要安装 bs4 库


def get_weather(city_pinyin):
 # 声明头,模拟真人操作,防止被反爬虫发现
 header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64;\
 rv:23.0) Gecko/20100101 Firefox/23.0'}
 # 通过传入的城市名拼音参数来拼接出该城市的天气预报的网页地址
 website = "http://www.tianqi.com/" + city_pinyin + ".html"
 req = urllib.request.Request(url=website, headers=header)
 page = urllib.request.urlopen(req)
 html = page.read()
 soup = BeautifulSoup(html.decode("utf-8"), "html.parser")
 # html.parser表示解析使用的解析器
 nodes = soup.find_all('dd')
 tody_weather = ""
 for node in nodes: # 遍历获取各项数据
  temp = node.get_text()
  if (temp.find('[切换城市]')):
   temp = temp[:temp.find('[切换城市]')]
  tody_weather += temp
 # 去除字符串中的空行:
 tianqi = "".join([s for s in tody_weather.splitlines(True)
      if s.strip()])

 return tianqi # 返回结果

# 调用封装号好的函数获取天气预报,参数‘chongqing'是重庆的拼音:
print(get_weather('chongqing')) 
# 想查询哪个城市的天气情况,直接将参数替换为它的拼音即可

上面代码执行结果截图如下:

40行Python代码实现天气预报和每日鸡汤推送功能

经过了第一步和第二步是不是觉得爬取鸡汤和天气预报并没有想象中难呢,只用了20多行代码就搞定啦。代码有不懂的结合注释多思考就好了,实在想不通就提问。

现在只差最后一步了,虽然代码也不多,但相比前面的而言还是比较麻烦的一步,过程有点繁琐,小编当时绕了好久,毕竟想免费发短信出去就是在白嫖啊!不过,别担心,小编后面给你讲的明明白白。

第三步,代码实现免费发送短信功能!

这一步需要将第一步获取的每日鸡汤内容和第二步获取的城市天气预报内容发送到手机短信,过程有点麻烦,为了讲得更详细,小编决定另写一篇blog教大家实现最关键的一步。写完地址会更新贴出来。

最后一步,文章链接:Python15行代码实现免费发送手机短信

总结

到此这篇关于40行Python代码实现天气预报和每日鸡汤推送 的文章就介绍到这了,更多相关python实现天气预报和每日鸡汤推送内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Linux下使用python调用top命令获得CPU利用率
Mar 10 Python
简单了解什么是神经网络
Dec 23 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
flask-restful使用总结
Dec 04 Python
django实现支付宝支付实例讲解
Oct 17 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
利用pytorch实现对CIFAR-10数据集的分类
Jan 14 Python
基于python实现检索标记敏感词并输出
May 07 Python
Python如何实现大型数组运算(使用NumPy)
Jul 24 Python
基于Python绘制子图及子图刻度的变换等的问题
May 23 Python
Python echarts实现数据可视化实例详解
Mar 03 Python
利用For循环遍历Python字典的三种方法实例
Mar 25 Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 #Python
matlab中imadjust函数的作用及应用举例
Feb 27 #Python
浅析matlab中imadjust函数
Feb 27 #Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 #Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 #Python
pytorch之Resize()函数具体使用详解
Feb 27 #Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 #Python
You might like
PHP读取目录下所有文件的代码
2008/01/07 PHP
php db类库进行数据库操作
2009/03/19 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
window.location.hash 属性使用说明
2010/03/20 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
精通Javascript系列之数值计算
2011/06/07 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
Python中matplotlib中文乱码解决办法
2017/05/12 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
关于Keras Dense层整理
2020/05/21 Python
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
2014年9.18纪念日演讲稿
2014/09/14 职场文书
民主评议党员工作总结
2014/10/20 职场文书
学习党章的体会
2014/11/07 职场文书
教师党员承诺书2015
2015/01/21 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
法制教育主题班会
2015/08/13 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
Redis+AOP+自定义注解实现限流
2022/06/28 Redis