Python 小技能之抓取天气信息发送给小姐姐

来源:Python 技术「ID: pythonall」

每天一个 Python 小技巧,你学废了吗?今天文章主要讲解如何将天气预报信息爬取下来并发送给小姐姐,感兴趣的朋友不妨试试,说不定会有意外收获呢!

抓取数据

爬虫的基本思路简易了解就三步:下载数据(根据需要爬取的 url 设定用户代理)、解析数据(编写爬取规则并获得数据)、保存数据。

知道上述步骤后咱们的需求是首先找到中国天气网链接 https://tianqi.so.com/weather/ ,抓取中国天气网的数据,获取天气信息部分代码如下:

data_list = [] response = requests.get(url) html_doc = response.text soup = BeautifulSoup(html_doc, 'lxml') # 自动补全html代码,并按html代码格式返回 wendu = soup.find('div', class_='temperature').get_text() tianqi = soup.find('div', class_='weather-icon-wrap').get_text() data_list.append("现在的温度:%s\n现在天气情况:%s" % (wendu, tianqi)) list = soup.find_all('ul', class_='weather-columns') for item in list: data_list.append(item.get_text()) print("列表数据:",data_list) a = 1#创建PrettyTable对象,用于将天气数据用表格的方式输出 tb = pt.PrettyTable() tb.field_names = ["日期","天气","详情"] for item in data_list: # print(a) if a != 1: tb.add_row([item.strip().split()[0]+item.strip().split()[1],item.strip().split()[2],item.strip().split()[3]]) else: print(item.strip()) a+=1 print(tb) return tb

输出结果为:

现在的温度:23现在天气情况:多云
+-------------+--------------+----------------+| 日期 | 天气 | 详情 |+-------------+--------------+----------------+| 今天(07-28) | 雷阵雨 | 22/31℃优西南风 || 明天(07-29) | 多云 | 24/32℃良西南风 || 周四(07-30) | 阴 | 25/33℃良西南风 || 周五(07-31) | 雷阵雨 | 24/33℃良西南风 || 周六(08-01) | 多云 | 25/34℃良西南风 || 周日(08-02) | 中雨转雷阵雨 | 24/33℃优南风 || 周一(08-03) | 多云 | 25/32℃优东风 || 周二(08-04) | 小雨 | 22/32℃良东南风 || 周三(08-05) | 小雨转阴 | 22/32℃良南风 || 周四(08-06) | 小雨 | 22/32℃良东北风 || 周五(08-07) | 多云转小雨 | 21/33℃良南风 || 周六(08-08) | 小雨 | 21/34℃良西南风 || 周日(08-09) | 多云转小雨 | 21/34℃良南风 || 周一(08-10) | 小雨 | 21/34℃良南风 || 周二(08-11) | 多云转小雨 | 21/33℃良南风 |+-------------+--------------+----------------+

发送邮件

将抓取的数据发送到相应的邮箱中,这里我将内容发送到自己的 QQ 邮箱,发送邮箱详细思路请详见 今天,我用 Python 给武汉人民发一封邮件,发送邮件代码如下:

实现代码:

# 收件人 receiver = receiver mail_title = '小姐姐,请查收今天以及往后15天的天气预报,愿你三冬暖,春不寒' mail_body = str(msg) # 创建一个实例 message = MIMEText(mail_body, 'plain', 'utf-8') # 邮件正文 # (plain表示mail_body的内容直接显示,也可以用text,则mail_body的内容在正文中以文本的形式显示,需要下载) # 邮件的发件人 message['From'] = sender # 邮件的收件人 message['To'] = receiver # 邮件主题 message['Subject'] = Header(mail_title, 'utf-8') # 创建发送邮件连接 smtp = smtplib.SMTP_SSL("smtp.qq.com", 465) # 连接发送邮件的服务器 smtp.connect(smtpserver) # 登录到邮件服务器 smtp.login(username, password) # 填入邮件的相关信息并发送 smtp.sendmail(sender, receiver, message.as_string())
smtp.quit()

调用发送邮件方法

if __name__ == '__main__': sender = 'XXX@qq.com' # 发件人邮箱的SMTP服务器(即sender的SMTP服务器) smtpserver = 'smtp.qq.com' # 发件人邮箱的用户名和授权码(不是登陆邮箱的密码) username = 'XXX' # 邮箱授权码 password = 'XXXXXXXXX' url1 = 'https://tianqi.so.com/weather/' receiver_list ='XXX@qq.com' tb = get_Data(url1) #获得每一个用户的数据 send_mail(tb,receiver_list) #发送邮件

发送结果如下:

总结

今天的文章主要是使用 Python 爬虫和邮件发送功能两者结合使用的场景,如果学废的小伙伴请 扣 1,咱们明天见!

(0)

相关推荐

  • 实战|用Python制作邮箱自动回复机器人

    Python大本营 昨天 以下文章来源于早起Python ,作者陈熹 大家好,又来到Python办公自动化专题. 在之前的系列文章中,我们已经讲解了如何利用Python读取.收发.管理邮件.本文将进一 ...

  • 荆州历史天气查询

    荆州历史天气19℃平均高温13℃平均低温28℃极端高温(2020-10-01)9℃极端低温(2020-10-18)57平均空气质量指数20空气最好(10月03日)108空气最差(10月27日})日期最 ...

  • Python 抓取知乎几千张小姐姐图片是什么体验?

    来源:Python 技术「ID: pythonall」 知乎上有许多关于颜值.身材的话题,有些话题的回复数甚至高达几百上千,拥有成千上万的关注者与被浏览数.如果我们在摸鱼的时候欣赏这些话题将花费大量的 ...

  • 通过易理抓取人生信息:读象技巧总结

    释缘易学 弘扬中国易经传统文化,研究.传承和发扬传统易经文化精髓:传播正确的命运观.人生观和价值观,竭尽所能为促进中华民族"文化自信"贡献绵薄之力. 78篇原创内容 公众号 我们以 ...

  • python爬虫进行Web抓取LDA主题语义数据分析报告

    原文链接:http://tecdat.cn/?p=8623 什么是网页抓取? 从网站提取数据的方法称为网络抓取.也称为网络数据提取或网络收集.这项技术的使用时间不超过3年. 为什么要进行网页爬取? W ...

  • 如何让Python爬虫一天抓取100万张网页,爬虫抓取网页数据

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 王平 源自:猿人学Python PS:如有需要Python学习资料的 ...

  • 在IDM上设置防止过度抓取网站信息

    在使用Internet Download Manager(IDM)下载器时,有时会发现IDM自带的抓取功能过于强大,以至于有时会抓取一些无效的链接.那么,该如何避免IDM的过度抓取呢? 图1:IDM的 ...

  • 如何用Python模拟登录微信,抓取所有好友个人信息!微信后台很强

    好了,下面让我们一步一步的详细讲解一下如何实现的这个复杂的过程. 2.模拟获取二维码 微信网页提供的登录方式是扫码,我们模拟也无法避开,因此也要进行扫码验证.回到浏览器,使用开发者工具可以轻松找到二维 ...

  • Python抓取必应搜索背景图片

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于编码珠玑 ,作者刘亚曦 Python爬虫.数据分析.网站开发等案例教程视频免费在线观 ...

  • 用 Python 抓取公号文章保存成 PDF

    今天为大家介绍如何将自己喜欢的公众号的历史文章转成 PDF 保存到本地.前几天还有朋友再问,能不能帮把某某公众号的文章下载下来,因为他很喜欢这个号的文章,但由于微信上查看历史文章不能排序,一些较早期的 ...

  • 用 Python 抓取公号文章保存成 HTML

    上次为大家介绍了如果用 Python 抓取公号文章并保存成 PDF 文件存储到本地.但用这种方式下载的 PDF 只有文字没有图片,所以只适用于没有图片或图片不重要的公众号,那如果我想要图片和文字下载下 ...