Python如何实现天气预报和每日鸡汤推送功能

  介绍

这篇文章主要介绍Python如何实现天气预报和每日鸡汤推送功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

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

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

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

#,小技巧:pycharm中,alt + enter快捷键可快速安装缺失库   import  json   import 请求      #,爬取爱词霸每日鸡的汤   def  get_iciba_everyday_chicken_soup ():=,url  & # 39; http://open.iciba.com/dsapi/& # 39;, #,词霸免费开放的jsonAPI接口=,,r  requests.get (url),=,,all  json.loads (r.text), #,获取到json格式的内容,内容很多   ,# print (), #, json内容,通过这行代码来确定每日一句的键名=,Englis 所有[& # 39;内容# 39;],#,提取json中的英文鸡的汤=,Chinese 所有[& # 39;注意# 39;],#,提取json中的中文鸡的汤=,everyday_soup 英语+ & # 39;\ n # 39; + Chinese  #,合并需要的字符串内容   ,return  everyday_soup  #,返回结果      print (get_iciba_everyday_chicken_soup ())

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

 Python如何实现天气预报和每日鸡汤推送功能

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

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

import  urllib.request  #,需要安装,urllib 库   得到bs4  import  BeautifulSoup  #需要安装,bs4 库         def  get_weather (city_pinyin):   ,#声明头,模拟真人操作,防止被反爬虫发现=,{,header  & # 39;用户代理# 39;:,& # 39;Mozilla/5.0, (Windows  NT  6.1;, WOW64; \   ,房车:23.0),壁虎/20100101,Firefox/23.0 & # 39;}   ,#通过传入的城市名拼音参数来拼接出该城市的天气预报的网页地址=,website “http://www.tianqi.com/", +, city_pinyin  +,“.html"=,,req  urllib.request.Request (url=网站,标题=头)=,,page  urllib.request.urlopen(要求)=,,html  page.read ()=,,soup  BeautifulSoup (html.decode (“utf-8"),“html.parser")   ,# html.parser表示解析使用的解析器=,,nodes  soup.find_all (& # 39; dd # 39;)=,tody_weather ““   ,for  node 节点:拷贝,#,遍历获取各项数据   时间=temp 才能;node.get_text ()   if 才能;(temp.find(& # 39;[切换城市]& # 39;)):   ,,temp =,临时[:temp.find(& # 39;[切换城市]& # 39;))   tody_weather 才能+=temp   ,#去除字符串中的空行:=,tianqi ““. join ([s  for  s 拷贝tody_weather.splitlines(真正的)   ,,,,,if  s.strip ()))      ,return  tianqi  #,返回结果      #,调用封装号好的函数获取天气预报,参数的重庆,是重庆的拼音:   打印(get_weather(& # 39;重庆# 39;)),   #,想查询哪个城市的天气情况,直接将参数替换为它的拼音即可

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

 Python如何实现天气预报和每日鸡汤推送功能

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

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

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

Python如何实现天气预报和每日鸡汤推送功能