今天说一下如何用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实现给你女朋友发天气预报和情话相关推荐

  1. 拿来就能用!用Python 每天定时给女神发一句情话

    我的日记 4月23日 晴你三天没回我的消息,在我孜孜不倦地骚扰下你终于舍得回我了,你说'nmsl'我想这一定是有什么含义吧!噢!我恍然大悟,原来是尼美舒利颗粒.她知道我关节炎,让我吃尼美舒利颗粒,她还 ...

  2. python自动发微信天气预报_【教程】Python微信定时自动给女朋友发送天气预报

    原标题:[教程]Python微信定时自动给女朋友发送天气预报 先上效果图 主要思路 1.从wxpy获取好友列表 2.创建定时器 3.定时器触发函数 4.函数执行,遍历好友列表 5.好友对象执行带参函数 ...

  3. 自学经验总结+实战:python爬虫的自我修养与每天微信给女朋友发一份直男日报

    直男日报: # 记录在一起多少天 # 爬取女朋友所在城市的天气 # 每天给女朋友一句土味情话 # 爬取Bing主页的壁纸,保存到本地并发送 自学爬虫一个月左右,先用R后用python,看了许多帖子也走 ...

  4. python向自己qq邮件发信息_python实现自动向QQ邮箱发送天气预报邮件

    今天是清明长假的最后一天了,趁着这点空余的时间想来做点有意思的东西,之前做12306自动购票程序的时候就想加入一个功能,就是抢票成功后实现自动向指定的邮箱里面发送提醒信息的邮件,功能还是很简单的,今天 ...

  5. python给女朋友_python实现用微信每天给女朋友发晚安

    python实现用微信每天给女朋友发晚安 发布时间:2018-06-17 17:24, 浏览次数:311 , 标签: python 初学python,看到一个小脚本程序,就自己实现做个笔记 环境准备: ...

  6. 女友让我每天半夜十二点给她发晚安?我用 Python 做了个定时发消息神器!怕她干嘛!

    最近,女友奇奇怪怪的要求越来越多了.竟然要我每天晚上十二点准时给她发晚安! 但是拥有 Python 的我怎么可能忍受得了这种煎熬呢!于是,我立马用 Python 做了一个自动发晚安神器! 安装.导入库 ...

  7. 你想每天定时向你的女朋友发一句早安吗 ?教你实现一个微信机器人

    ❝ 你想每天定时向你的女朋友发一句早安吗? ❞ wechaty 是一个使用 typescript 开发的机器人,我已经使用 wechaty[1] 做了很多关于有趣的自动化的工作. 你可以通过 wech ...

  8. 用Python实现免费往手机发短信

    今天看到一个很有意思的网站:twilio.com 想必大家都收到过1069开头的信息,例如: 这种的. 而这种短信的发送是完全免费的,实现这个功能,只需要两步: 1.去twilio.com申请账号(只 ...

  9. python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...

    Python爬虫入门实战--------一周天气预报爬取[转载][没有分析 Python爬虫入门实战--------一周天气预报爬取[转载][没有分析] 来源:https://blog.csdn.ne ...

最新文章

  1. Mac设置信认任意来源应用
  2. centos7 安装oracle jdk 与openjdk 实现切换
  3. 安装class-dump
  4. 直播 | ACL 2021论文解读:低资源语言场景下的跨语言文本摘要
  5. boost::hana::detail::fast_and用法的测试程序
  6. Android 系统(140)---android.mk中几个常见配置
  7. 中文科技核心期刊目录 计算机,中国科技核心期刊目录(2019版)”(“中国科技论文统计源期刊”)...
  8. Excel中计算年龄的函数
  9. crm登录系统是什么系统?
  10. 微信小程序云开发-树洞小程序Treehole(畅所欲言/交易广场实现)
  11. Balanced Lineup
  12. GTX1650Super和GTX1060哪个好?
  13. PCA主成分分析 提取主成分,过滤噪音
  14. FFMPeg代码分析:AVCodecContext结构体
  15. 常见开发相关变量命名词汇
  16. 二分法算法复杂度简化_让我们简化算法的复杂性!
  17. php怎么对接wordpress,wordpress 无缝对接php页面
  18. PHPRunner 10.7.0 PHP代码生成器
  19. onenote怎么同步到电脑_详解onenote保存与同步⑤:笔记的备份
  20. 怎么找回电脑误删的文件方法汇总

热门文章

  1. python怎么识别图片验证码_python爬虫20 | 小帅b教你如何使用python识别图片验证码...
  2. 趋势科技PC-Cillin 2012试飞大赏开始啦
  3. 可解释性机器学习_Feature Importance、Permutation Importance、SHAP
  4. 暑假学习打卡【1】——欢迎来到C语言的世界
  5. 【2022】小记:CDH hive 10000端口连接不上问题
  6. 局域网ARP攻击和防护
  7. 平板 matlab,MATLAB实现平板平面度数据处理
  8. Qualcomm DragonBoard 410c Display之DSI浅析
  9. 数学建模学习-插值法
  10. 2017驾校 科三考试流程 富阳考场一号线