您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:使用python实现定时报天气的示例代码

51自学网 2022-02-21 10:48:43
  python
这篇教程使用python实现定时报天气的示例代码写得很实用,希望能帮到您。

前言

如果你和我一样偶尔看看股票,看看自己关注的股票是涨了还是跌了,或者想快速获取到想看的头条新闻,我们不必把过多的注意力放在去寻找上面,我们只需要让爬虫程序每天自动为你发送你想要了解的信息就可以了,这样就能掌控我们的注意力,更好的去享受生活。

一.分析爬取目标

这里就不爬取股票的信息,我来爬一个天气预报的信息,然后实现每天定时发送。打开下面的链接就能跳转到中国气象网
http://www.weather.com.cnnn/

在这里插入图片描述

点击温度那个位置就可以进入下面的图

在这里插入图片描述

我们可以看到7天的天气和8-15天的天气,再往后对我们来说就没必要了。我们查看七日的天气预报,直接爬11日的天气,鼠标右键->检查->Network->刷新网页->查看列表第一个,再点击preview

在这里插入图片描述

可以看到数据在HTML里面,然后回到element

在这里插入图片描述

可以发现,温度数据放在<p class="tem">之下。“多云”所在的位置是<p title="晴" class="wea">晴</p>

在这里插入图片描述

import requestsheaders = {    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}# 封装headers#这里对应的是我选的城市,可以换自己所在城市url = 'http://www.weather.com.cn/weather/101010100.shtml'# 把URL链接赋值到变量url上res = requests.get(url, headers=headers)# 发送requests请求,并把响应的内容赋值到变量res中。print(res.text)# 打印出res对象的网页源代码print(res.status_code)# 检查响应状态是否正常

看结果可以看到是响应是正常的,但是出现了乱码。但是莫慌。加上一句res.encoding='utf-8'就行了。

在这里插入图片描述

接下来就可以写完整的爬取信息的代码了

import requestsfrom bs4 import BeautifulSoupheaders={'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}#封装headersurl='http://www.weather.com.cn/weather/101010100.shtml'#把URL链接赋值到变量url上res=requests.get(url,headers=headers)#发送requests请求,并把响应的内容赋值到变量res中res.encoding='utf-8'bsdata=BeautifulSoup(res.text,'html.parser')#使用bs模块解析获取到的数据data_temperature= bsdata.find(class_='tem')#使用find()取出天气的温度数据data_weather= bsdata.find(class_='wea')#使用find()取出天气的文字描述print(data_temperature.text)#取出变量data_temperature中的字符串内容,并打印print(data_weather.text)#取出变量data_weather中的字符串内容,并打印

可以成功的得到需要的数据。

在这里插入图片描述

其实最难的不是爬虫,爬这种信息新手应该都会,接下里才是重头戏。

二.信息的发送

如果我们想要实现发送邮件,这里以qq邮件为例要经过以下的步骤:

  • 连接邮件服务器
  • 使用邮箱账号密码登录
  • 填写收件人,主题,正文等
  • 发送邮件

所以连接服务器要用到用到smtplib库,填写主题和撰写正文,需要用到email库(python真的是yyds)

1.连接服务器

SMTP代表简单邮件传输协议,相当于一种计算机之间发邮件的约定

smtplib是不需要安装的,smtplib是python的一个内置库,有兴趣的小伙伴可以看看官方文档

看下面的代码

import smtplibmailhost='smtp.qq.com'#把qq邮箱的服务器地址赋值到变量mailhost上,地址需要是字符串的格式。qqmail = smtplib.SMTP()#实例化一个smtplib模块里的SMTP类的对象,这样就可以SMTP对象的方法和属性了qqmail.connect(mailhost,25)#连接服务器,第一个参数是服务器地址,第二个参数是SMTP端口号

**mailhost=‘smtp.qq.com'**这句是qq邮箱的服务器地址,这个是可以查得到的

用SMTP对象的connect()方法连接服务器,第一个参数是获取到的服务器地址,第二个参数是SMTP端口号
python深度学习人工智能BackPropagation链式法则
python人工智能深度学习入门逻辑回归限制

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。