用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

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.