用python写个程序送给女朋友_用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事...

本文主要是介绍用python写个程序送给女朋友_用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导读:这篇文章利用简单的Python爬虫、邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详尽的文章。

最近,某可爱要求我忙完之后给她每晚睡前讲讲小故事,我想了下,网络上应该有各种资源,小故事也都能搜得到,但是数量比较少,而且格式不够统一,提取比较困难。转念一想,面向儿童的睡前故事可能也比较适用,于是我准备从儿童睡前故事中取材,搜索之后发现有一个适合提取睡前故事的网址:

http://www.tom61.com/ertongwenxue/

一共有700则小故事,嗯,一天一则数量可以满足,html格式也比较统一,就决定是它了!

f5a397363f085bb276f9ef35cb91dca5.png

查看网页源代码,ctrl+F输入查询关键字幸福王国,定位到相关信息:

b6cd59497fd9882d1270969bc1bea1a8.png

发现其故事链接包含在dl标签中的a标签中的href属性,

/ertongwenxue/shuiqiangushi/2018-02-25/106432.html

点击后得到完整网址

tom61.com/ertongwenxue/

接下来要做的就是提取出该链接:

1. 模拟浏览器访问网页,利用requests库请求访问

代码实现:

def getHTMLText(url,headers):

try:

r=requests.get(url,headers=headers,timeout=30)

r.raise_for_status()

r.encoding=r.apparent_encoding

return r.text

except:

return "爬取失败"

2. 简单地使用BeautifulSoup库,解析html页面

找到dl标签的内容后在查找a标签中的内容,将提取的链接与原网页头进行拼接:

def parsehtml(namelist,urllist,html):

url='http://www.tom61.com/'

soup=BeautifulSoup(html,'html.parser')

t=soup.find('dl',attrs={'class':'txt_box'})

i=t.find_all('a')

for link in i:

urllist.append(url+link.get('href'))

namelist.append(link.get('title'))

3. 得到所有网页链接地址之后,访问该网页

查看网页源代码:

0429d494a306daf5f5b8b14cc0ab99e4.png

4. 重新对该网页进行页面解析,提取出所有p标签中的内容

由于下面需要使用str类型的字符串,因此用.join方法将text列表用换行符进行分割。

def parsehtml2(html):

text=[]

soup=BeautifulSoup(html,'html.parser')

t=soup.find('div',class_='t_news_txt')

for i in t.findAll('p'):

text.append(i.text)

#print(text)

return "\n".join(text)

5. 将爬取的小故事发送到邮箱

def sendemail(url,headers):

msg_from='' #发送方邮箱

passwd='' #填入发送方邮箱的授权码

receivers=[','] #收件人邮箱

subject='今日份的睡前小故事' #主题

html=getHTMLText(url,headers)

content=parsehtml2(html) #正文

msg = MIMEText(content)

msg['Subject'] = subject

msg['From'] = msg_from

msg['To'] = ','.join(receivers)

try:

s=smtplib.SMTP_SSL("smtp.qq.com",465) #邮件服务器及端口号

s.login(msg_from, passwd)

s.sendmail(msg_from, msg['To'].split(','), msg.as_string())

print("发送成功")

except:

print("发送失败")

finally:

s.quit()

简单地利用smtp协议通过QQmail发送邮件给目标邮箱,端口号为465,正文内容为爬取的小故事。

6. 实现定时发送功能

在Windows的环境中,在cmd中输入compmgmt.msc,将该脚本文件加入任务计划程序库,设置运行时间和频率。

7258bba49e7be69e4912538ca357e480.png

这样就能实现每晚九点定时发送睡前小故事啦!

fb3876ada37fc5c30b22d67faa977a1e.png

后来我还找到了一个英文故事网站,用同样的思路完成爬取—推送的操作。你可以选择一天推送中文故事,一天推送英文故事,岂不妙哉。

当然本文只是提供一个想法,你可以基于这个思路实现更多有意思的案例,本文的源码可按下方的提示获取!

本文提到的源码可以在微信公众号”智阅荟“回复202010191下载:

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注公众号:「智阅荟」,懂技术,更懂你!

dd0d5c6a04b6c2bccf9d3efad55c7d2a.png

↑关注上方公众号回复 202010191 即可下载↑

说明:本站提供的所有软件已经过360、火绒安全检测,在使用中如有问题可在公众号留言!

这篇关于用python写个程序送给女朋友_用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/336353

相关文章

豆包 MarsCode 不允许你还没有女朋友

在这个喧嚣的世界里,爱意需要被温柔地唤醒。为心爱的她制作每日一句小工具,就像是一场永不落幕的浪漫仪式,每天都在她的心田播撒爱的种子,让她的每一天都充满甜蜜与期待。 背景 在这个瞬息万变的时代,我们都在寻找那些能让我们慢下来,感受生活美好的瞬间。为了让这份浪漫持久而深刻,我们决定为女朋友定制一个每日一句小工具。这个工具会在她意想不到的时刻,为她呈现一句充满爱意的话语,让她的每一天都充满惊喜和感动

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打