python实现给你女朋友发天气预报和情话
今天说一下如何用python给你女朋友发天气预报和情话,让她明白程序员也有浪漫
整体思路:
- 上网爬取天气信息
- 上网爬取情话
- 发邮件
- 实现定时发邮件
需要用到的模块:
- requests:用于向网站发送请求
- yagmail:用法发邮件
- schedule:用于实现定时任务
- BeautifulSoup:处理网页标签
- re:正则过滤
天气获取的url:https://tianqi.2345.com/。这个是默认的,为了省去一写麻烦我直接在首页点到对应的城市,最终链接如下:https://tianqi.2345.com/cixian1d/70177.htm,你们可以改成你们女朋友城市的链接。
我获取情话的url地址是:https://www.guaze.com/juzi/23389.html。当然,你们也可以自定义一些情话使用random随机发送
首先我们需要导入对应的模块:
先做第一步,上网爬取天气信息
import requests
from bs4 import BeautifulSoupurl = 'https://tianqi.2345.com/cixian1d/70177.htm'
经过分析我们找到了我们要取的标签内容所在位置
接下来我们开始爬取:
web = requests.get(url) # 对网页进行get请求
# print(web.text)
page = BeautifulSoup(web.text,'html.parser') # 将get下来的网页内容交给BeautifulSoup处理,并指定解释器为htmlweather = page.find('div',class_='real-today') # 搜索我们要获取的span标签内容上面的div标签,指定它的class name为real-today。这个可以在上图看到div后面有class,后面引号内的内容就是它的class nameprint(weather.text)
执行结果如下:
今天:24-31° 阵雨转阴
到这第一步爬取天气就完成了,是不是很简单.
接下来我们开始第二部,爬取情话
此步还需再导入一个re模块
import reloveurl = 'https://www.guaze.com/juzi/23389.html'web2 = requests.get(loveurl)
web2.encoding='gb2312' # 此处需要对网站指定一个编码格式# print(web2.text)
page = BeautifulSoup(web2.text, "html.parser")
div = page.find('div', class_="content")
print(div.text)
# 和上面套路相同
执行结果如下:(太多,所以只展示了部分)
1、人总是贪婪的,就像最开始我只想知道你的名字。
2、海上月是天上月,眼前人是心上人。——张爱玲
3、你知道我的缺点是什么吗?是缺点你
4、我昨天晚上梦到你了,梦里面我很爱你,对于我来说,梦是虚假的,但爱你是真的。
5、想做那个只喜欢你,也只被你喜欢的人
6、这么多的路,到底哪一条才能到你心里
7、遇见你我变得很低很低,一直低到尘埃里去.但我的心是欢喜的,在那里开出一朵花来。——张爱玲
可以看到跟明显的缺陷,就是有空行,所以我们需要稍加处理
div = str(div.text) # 转换上面获取到的内容格式为字符串
grep = re.compile(r"\d+、(.*)") # re过滤格式为 数字、任意内容,将空行排除
content = grep.findall(div) # 指定要过滤的内容为div,并返回个列表
print(content[1]) # 打印列表内下标为1的内容
结果如下:
海上月是天上月,眼前人是心上人。——张爱玲
到这第二步也完成了,剩下就剩下定时发邮件了
导入模块:
import yagmail # 此模块用于发邮件import schedule # 此模块用于计划任务yag = yagmail.SMTP(host='smtp.qq.com', user='你的邮箱', # 如过用的是qq邮箱就写smtp.qq.com,如果是163就写smtp.163.compassword='授权码', smtp_ssl=True # 授权码在qq邮箱里开启smtp就会生成一个)weather = [weather.text,"每日情话:",content[ran], # 定义发送内容yagmail.inline(r"./love.jpg") # 附件图片,不发图片可以删掉]yag.send(to=['要发送到的邮箱地址'],subject='天气预报', # 邮件主题contents=weather # 发送的内容为上面定义的weather,其中weather.text是天气预报,content[ran]是情话)
完整代码:
import requests
import yagmail # 此模块用于发邮件
import schedule # 此模块用于计划任务
from bs4 import BeautifulSoup
import reran = 0
url = 'https://tianqi.2345.com/cixian1d/70177.htm' # 定义天气预报的url
loveurl = 'https://www.guaze.com/juzi/23389.html' # 定义情话的url
def email():global ran # 将ran变量声明为全局变量web = requests.get(url)# print(web.text)page = BeautifulSoup(web.text,"html.parser")# print(ran)# print(love[ran])weather = page.find("div",class_="real-today")# print(weather.text)web2 = requests.get(loveurl)web2.encoding = 'gb2312'page = BeautifulSoup(web2.text, "html.parser")div = page.find('div', class_="content")div = str(div.text)# print(div)grep = re.compile(r"\d+、(.*)")content = grep.findall(div)# print(content)# email函数内的内容是爬取天气和情话的,具体的地址天气你可以更换urlyag = yagmail.SMTP(host='smtp.qq.com', user='你的邮箱', # 如过用的是qq邮箱就写smtp.qq.com,如果是163就写smtp.163.compassword='授权码', smtp_ssl=True # 授权码在qq邮箱里开启smtp就会生成一个)weather = [weather.text,"每日情话:",content[ran], # 定义发送内容yagmail.inline(r"./love.jpg") # 附件图片,不发图片可以删掉]yag.send(to=['要发送到的邮箱地址'],subject='天气预报', # 邮件主题contents=weather # 发送的内容为上面定义的weather,其中weather.text是天气预报,content[ran]是情话)print("发送完成")ran += 1schedule.every().day.at("05:21").do(email) # 每天5点21分执行函数email0
# schedule.every(10).seconds.do(email) #每10秒执行一下函数email的内容,我这里用于测试
while True:schedule.run_pending()
其中ran变量用于取情话列表内的内容,每发一次加1,以此来让每次发的情话都不一样
效果如下:(我这里设置的是每天凌晨5:21发送,你可以根据需求改,图片也是)快给你女朋友安利起来吧!
python实现给你女朋友发天气预报和情话相关推荐
- 拿来就能用!用Python 每天定时给女神发一句情话
我的日记 4月23日 晴你三天没回我的消息,在我孜孜不倦地骚扰下你终于舍得回我了,你说'nmsl'我想这一定是有什么含义吧!噢!我恍然大悟,原来是尼美舒利颗粒.她知道我关节炎,让我吃尼美舒利颗粒,她还 ...
- python自动发微信天气预报_【教程】Python微信定时自动给女朋友发送天气预报
原标题:[教程]Python微信定时自动给女朋友发送天气预报 先上效果图 主要思路 1.从wxpy获取好友列表 2.创建定时器 3.定时器触发函数 4.函数执行,遍历好友列表 5.好友对象执行带参函数 ...
- 自学经验总结+实战:python爬虫的自我修养与每天微信给女朋友发一份直男日报
直男日报: # 记录在一起多少天 # 爬取女朋友所在城市的天气 # 每天给女朋友一句土味情话 # 爬取Bing主页的壁纸,保存到本地并发送 自学爬虫一个月左右,先用R后用python,看了许多帖子也走 ...
- python向自己qq邮件发信息_python实现自动向QQ邮箱发送天气预报邮件
今天是清明长假的最后一天了,趁着这点空余的时间想来做点有意思的东西,之前做12306自动购票程序的时候就想加入一个功能,就是抢票成功后实现自动向指定的邮箱里面发送提醒信息的邮件,功能还是很简单的,今天 ...
- python给女朋友_python实现用微信每天给女朋友发晚安
python实现用微信每天给女朋友发晚安 发布时间:2018-06-17 17:24, 浏览次数:311 , 标签: python 初学python,看到一个小脚本程序,就自己实现做个笔记 环境准备: ...
- 女友让我每天半夜十二点给她发晚安?我用 Python 做了个定时发消息神器!怕她干嘛!
最近,女友奇奇怪怪的要求越来越多了.竟然要我每天晚上十二点准时给她发晚安! 但是拥有 Python 的我怎么可能忍受得了这种煎熬呢!于是,我立马用 Python 做了一个自动发晚安神器! 安装.导入库 ...
- 你想每天定时向你的女朋友发一句早安吗 ?教你实现一个微信机器人
❝ 你想每天定时向你的女朋友发一句早安吗? ❞ wechaty 是一个使用 typescript 开发的机器人,我已经使用 wechaty[1] 做了很多关于有趣的自动化的工作. 你可以通过 wech ...
- 用Python实现免费往手机发短信
今天看到一个很有意思的网站:twilio.com 想必大家都收到过1069开头的信息,例如: 这种的. 而这种短信的发送是完全免费的,实现这个功能,只需要两步: 1.去twilio.com申请账号(只 ...
- python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...
Python爬虫入门实战--------一周天气预报爬取[转载][没有分析 Python爬虫入门实战--------一周天气预报爬取[转载][没有分析] 来源:https://blog.csdn.ne ...
最新文章
- Mac设置信认任意来源应用
- centos7 安装oracle jdk 与openjdk 实现切换
- 安装class-dump
- 直播 | ACL 2021论文解读:低资源语言场景下的跨语言文本摘要
- boost::hana::detail::fast_and用法的测试程序
- Android 系统(140)---android.mk中几个常见配置
- 中文科技核心期刊目录 计算机,中国科技核心期刊目录(2019版)”(“中国科技论文统计源期刊”)...
- Excel中计算年龄的函数
- crm登录系统是什么系统?
- 微信小程序云开发-树洞小程序Treehole(畅所欲言/交易广场实现)
- Balanced Lineup
- GTX1650Super和GTX1060哪个好?
- PCA主成分分析 提取主成分,过滤噪音
- FFMPeg代码分析:AVCodecContext结构体
- 常见开发相关变量命名词汇
- 二分法算法复杂度简化_让我们简化算法的复杂性!
- php怎么对接wordpress,wordpress 无缝对接php页面
- PHPRunner 10.7.0 PHP代码生成器
- onenote怎么同步到电脑_详解onenote保存与同步⑤:笔记的备份
- 怎么找回电脑误删的文件方法汇总
热门文章
- python怎么识别图片验证码_python爬虫20 | 小帅b教你如何使用python识别图片验证码...
- 趋势科技PC-Cillin 2012试飞大赏开始啦
- 可解释性机器学习_Feature Importance、Permutation Importance、SHAP
- 暑假学习打卡【1】——欢迎来到C语言的世界
- 【2022】小记:CDH hive 10000端口连接不上问题
- 局域网ARP攻击和防护
- 平板 matlab,MATLAB实现平板平面度数据处理
- Qualcomm DragonBoard 410c Display之DSI浅析
- 数学建模学习-插值法
- 2017驾校 科三考试流程 富阳考场一号线