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 相关文章推荐
Python操作CouchDB数据库简单示例
Mar 10 Python
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 Python
python3实现ftp服务功能(客户端)
Mar 24 Python
Python编程实战之Oracle数据库操作示例
Jun 21 Python
python和ruby,我选谁?
Sep 13 Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 Python
python 运用Django 开发后台接口的实例
Dec 11 Python
Python3.6实现带有简单界面的有道翻译小程序
Apr 16 Python
Python异常模块traceback用法实例分析
Oct 22 Python
Keras 快速解决OOM超内存的问题
Jun 11 Python
python向企业微信发送文字和图片消息的示例
Sep 28 Python
Pandas数据分析的一些常用小技巧
Feb 07 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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
javascript 函数速查表
2010/02/07 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
python插入排序算法的实现代码
2013/11/21 Python
python实现2014火车票查询代码分享
2014/01/10 Python
python中set常用操作汇总
2016/06/30 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
使用Python 统计高频字数的方法
2019/01/31 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
python修改文件内容的3种方法详解
2019/11/15 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
2020/03/11 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
连锁经营管理专业大学生求职信
2013/10/30 职场文书
农行心得体会
2014/09/02 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
付款证明格式范文
2015/06/19 职场文书
Go归并排序算法的实现方法
2022/04/06 Golang