这篇文章主要介绍了通过40行Python代码实现天气预报和每日鸡汤推送功能,代码简单易懂,非常不错具有一定的参考借鉴价值 ,需要的朋友可以参考下
情人节刚过去几天,但是这和我们程序员有什么关系呢,对我们来说,万物皆对象。但是啊,小编为了讨得仰慕已久的女神的欢心(真香),便用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())

上面代码执行结果截图如下:成功爬取每日鸡汤,第一步实现。
第二步,爬取天气预报网站的天气情况!

需要爬取的是天气网站的数据: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'))
# 想查询哪个城市的天气情况,直接将参数替换为它的拼音即可

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

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

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

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

这一步需要将第一步获取的每日鸡汤内容和第二步获取的城市天气预报内容发送到手机短信,过程有点麻烦,为了讲得更详细,小编决定另写一篇blog教大家实现最关键的一步。写完地址会更新贴出来。
写到这里,给大家推荐一个资源很全的python学习聚集地,点击进入,这里有资深程序员分享以前学习

心得,学习笔记,还有一线企业的工作经验,且给大家精心整理一份python零基础到项目实战的资料,

每天给大家讲解python最新的技术,前景,学习需要留言的小细节

总结

到此这篇关于40行Python代码实现天气预报和每日鸡汤推送 的文章就介绍到这了,更多相关python实现天气预报和每日鸡汤推送内容

python爬虫教程:如何用40行Python代码实现天气预报和每日鸡汤推送功能相关推荐

  1. python爬虫教程入门-零基础入门Python爬虫不知道怎么学?这是入门的完整教程

    原标题:零基础入门Python爬虫不知道怎么学?这是入门的完整教程 这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑 ...

  2. python爬虫教程 百度云-如何使用python编程【python爬虫教程 百度云】

    如何更换python版本 1.如果你的电脑上是Python3.6.0和Python3.7.0,并且你先装的Python3.6.0,后装的Python3.7.0:那么它将默认的是Python3.7.0 ...

  3. python爬虫教程简书_7个Python爬虫实战项目教程

    有很多小伙伴在开始学习Python的时候,都特别期待能用Python写一个爬虫脚本,实验楼上有不少python爬虫的课程,这里总结几个实战项目,如果你想学习Python爬虫的话,可以挑选感兴趣的学习哦 ...

  4. python界面翻译-我用40行python代码写一个桌面翻译器,很nice

    我们进行制作软件所需要的模板库,首先要进行引用. 另外大家要注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你没有2020最新python入门到高级实战视频教程,可以 ...

  5. python抠图教程_简单几行Python代码实现8秒抠图的AI神器,根本无需PS(附教程)...

    曾几何时,「抠图」是一个难度系数想当高的活儿,但今天要介绍的这款神工具,只要 3 行代码 5 秒钟就可以完成高精度抠图,甚至都不用会代码,点两下鼠标就完成了. 感受下这款抠图工具抠地有多精细: 是不是 ...

  6. python 换脸 github_如何用200行Python代码“换脸”

    介绍 本文将介绍如何编写一个只有200行的Python脚本,为两张肖像照上人物的"换脸". 这个过程可分为四步: 检测面部标记. 旋转.缩放和转换第二张图像,使之与第一张图像相适应 ...

  7. python爬虫入门必看——七行python爬虫代码

    基本思路 1.导入请求头模块 2.获取响应 3.解码 4.爬虫完成 import requests url="https://www.baidu.com" response = r ...

  8. 如何用Nearby Service开发针对附近人群的精准广告推送功能

      当你想找一家餐厅吃饭,却不知道去哪家,这时候手机跳出一条通知,为你自动推送附近优质餐厅的信息,你会点击查看吗?当你还在店内纠结于是否买下一双球鞋时,手机应用给了你发放了老顾客5折优惠券,这样的广告 ...

  9. 为什么用python写爬虫_老猿为什么写Python爬虫教程

    对于"爬虫", 或许你只是听说过,或许已经有所了解.无论怎样,你可能有过这样的困惑: + 学了爬虫不知道怎么挣钱? + 技术不知道如何进阶? + 遇到问题不知道找谁交流? 十多年前 ...

最新文章

  1. 互联网老师论坛高调炫耀收入:硕士毕业三年,月入九万多!
  2. 线上直播 | NVIDIA TensorRT在神经机器翻译中的应用
  3. 自己用java实现飞鸽传书 2 - 实现文件传输
  4. linux中程序包管理方式出现的原由(转载)
  5. tensorflow之pd模型
  6. Office安装时闪退,用Windows Installer Cleanup彻底卸载 或 注册表清理解决
  7. 各大IT公司经典面试题总结
  8. 国内pt站点都有什么资源,哪些值得pter入手?
  9. 如何选择合适的字体:宋体篇
  10. 响应服务器530 5.7.0,SMTPSenderRefused(530,需要b'5.7.0身份验证)
  11. bongo cat mver手机版|键盘猫手机版
  12. 异常:java.lang.IllegalArgumentException: Result Maps collection already contains
  13. 专有名词或英文缩写释义
  14. 联邦学习笔记-《Federated Machine Learning: Concept and Applications》论文翻译个人笔记
  15. php 面向对象知识体系
  16. 洛谷P2058 海港
  17. 金仓数据库 KingbaseES 客户端编程接口指南 - JDBC(11. JDBC 示例说明)
  18. 论文阅读20220523_Baidu Apollo EM Planner
  19. 验证手机号是否注册过爱奇艺
  20. 更好的表现,NTP8835替代AD83586B方案(一)

热门文章

  1. 皮肤亮白白——美颜算法
  2. exsist什么意思_exist什么意思_通达信EXIST什么意思
  3. 计算机网络 —— TCP的三次握手四次挥手
  4. 4-Arm PEG-Epoxide,四臂-聚乙二醇-环氧基,4-Arm PEG-EP
  5. 为祖国庆生, 我们都经历了些什么?
  6. 破解PPT密码的方法
  7. facebook rebound
  8. P1061 [NOIP2006 普及组] Jam 的计数法
  9. CSS3 - 使用弹性盒子(Flex Box)实现完美居中、栅格系统及响应式布局
  10. uni-app小程序onShow执行两次;微信小程序onShow重复执行原因;导航栏tabBar页的onLoad函数不执行;App.vue页的onShow执行原因;onShow莫名其妙执行