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 相关文章推荐
spyder常用快捷键(分享)
Jul 19 Python
TensorFlow中权重的随机初始化的方法
Feb 11 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
python实现图片批量压缩程序
Jul 23 Python
使用PIL(Python-Imaging)反转图像的颜色方法
Jan 24 Python
python字符串替换re.sub()方法解析
Sep 18 Python
python快速排序的实现及运行时间比较
Nov 22 Python
python手写均值滤波
Feb 19 Python
python 实现在shell窗口中编写print不向屏幕输出
Feb 19 Python
完美解决ARIMA模型中plot_acf画不出图的问题
Jun 04 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 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 和 MySQL 基础教程(四)
2006/10/09 PHP
PHP date函数参数详解
2006/11/27 PHP
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
Python调用服务接口的实例
2019/01/03 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
Python控制台实现交互式环境执行
2020/06/09 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
最新pycharm安装教程
2020/11/18 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
计算机专业自我鉴定
2013/10/15 职场文书
工程质量月活动方案
2014/02/19 职场文书
践行三严三实心得体会
2014/10/13 职场文书
2014司机年终工作总结
2014/12/05 职场文书
停发工资证明范本
2015/06/12 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
详解Go与PHP的语法对比
2021/05/29 PHP
Python必备技巧之函数的使用详解
2022/04/04 Python
对讲机知识
2022/04/07 无线电