用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事
导读:这篇文章利用简单的Python爬虫、邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详尽的文章。
最近,某可爱要求我忙完之后给她每晚睡前讲讲小故事,我想了下,网络上应该有各种资源,小故事也都能搜得到,但是数量比较少,而且格式不够统一,提取比较困难。转念一想,面向儿童的睡前故事可能也比较适用,于是我准备从儿童睡前故事中取材,搜索之后发现有一个适合提取睡前故事的网址:
http://www.tom61.com/ertongwenxue/
一共有700则小故事,嗯,一天一则数量可以满足,html格式也比较统一,就决定是它了!
查看网页源代码,ctrl+F
输入查询关键字幸福王国,定位到相关信息:
发现其故事链接包含在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_encodingreturn r.textexcept: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. 得到所有网页链接地址之后,访问该网页
查看网页源代码:
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'] = subjectmsg['From'] = msg_frommsg['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
,将该脚本文件加入任务计划程序库,设置运行时间和频率。
这样就能实现每晚九点定时发送睡前小故事啦!
后来我还找到了一个英文故事网站,用同样的思路完成爬取—推送的操作。你可以选择一天推送中文故事,一天推送英文故事,岂不妙哉。
当然本文只是提供一个想法,你可以基于这个思路实现更多有意思的案例,本文的源码可按下方的提示获取!
本文提到的源码可以在微信公众号”智阅荟“回复202010191下载:
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注公众号:「智阅荟」,懂技术,更懂你!
↑关注上方公众号回复 202010191 即可下载↑
说明:本站提供的所有软件已经过360、火绒安全检测,在使用中如有问题可在公众号留言!
用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事相关推荐
- python 提取网页正文_用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事...
↑ 关注 + 星标 ,每天学Python新技能后台回复[大礼包]送你Python自学大礼 导读:这篇文章利用简单的Python爬虫.邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详 ...
- 齁甜齁甜!用代码给女朋友每日定时推送睡前小故事
作者 | 老肥 来源 | 老肥码码码 这篇文章是去年我在博客上写的一篇基础爬虫,利用了简单的Python爬虫.邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详尽的文章.经过测试,该 ...
- 教你用Python 每日定时推送睡前小故事给你__的人
本文利用了简单的Python爬虫.邮件发送以及定时任务实现了每天 定时发送睡前小故事 的功能,是一篇步骤详尽的文章. 经过测试,该 程序仍能正常运行 . 最近,某可爱要求我忙完之后给她每晚睡前讲讲小故 ...
- 给女朋友推送睡前小故事
上一篇写了给女朋友推送天气的,但是未免太单调,来个推送睡前小故事 这次用的是这个网站http://www.tom61.com/ertongwenxue/shuiqiangushi/index_2.ht ...
- python写微信小程序源码示例_python实现微信小程序用户登录、模板推送
python实现微信小程序用户登录.模板推送 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: python实现微信小程序用户登录.模板推送.txt ] (友情提示 ...
- 小程序云开发之消息推送功能
小程序云开发之消息推送功能(图文) 一:新建项目 APPID获取方法:1.在微信公众平台上注册账号,选择小程序(也可以从服务号注册,前提你有一个服务号)注册后登录,登录时微信扫码验证一下 2.填写小程 ...
- 微信小程序 调取云函数 信息推送失败response out of time limit or subscription is canceled hint的具体解决方法
微信小程序 调云函数 信息推送失败,提示errcode":45015,"errmsg":"response out of time limit or subsc ...
- 微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ
微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ 一.获取用户信息 1.首先我们需要了解什么是微信用户的OpenID 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密 ...
- 一图了解App跳转微信小程序关注公众号,推送消息
一图了解App跳转微信小程序关注公众号,推送消息:
最新文章
- [持续更新][小工具]计算器
- 反射和内省_单例设计模式–内省和最佳实践
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第15篇]RSA-OAEP和ECIES的密钥生成,加密和解密
- 给本地Git配置账号信息
- 【雷达通信】基于Matlab GUI中重频PD雷达仿真系统【含Matlab源码 1055期】
- feign 获取请求真实目的ip地址
- java计算机毕业设计HTML5旅游网站源码+mysql数据库+系统+lw文档+部署
- 软件打不开且显示乱码的解决办法
- 虎年全新姓氏头像制作多模板微信小程序2022新版头像制作源码支持多种流量主模式亲测
- win10重置网络命令_WIN10重置网络的操作方法
- 《音视频开发》系列-总览
- 移动互联网十年内难以盈利 莫盲目跟风
- C# /.NET6 实现语音转文字(科大讯飞语音转文字接口)
- Windows 利用Anaconda创建pytorch等环境
- Eclipse各版本代号一览表以及官网上有很多版本的eclipse的比较
- html 窗口左边悬浮ul,js + css实现左侧悬浮导航栏
- 类似余额宝数值增加的动画
- 4月6日—4月10日四年级课程表
- css特效开发,7款吸引人眼球的jQuery/CSS3特效实例分享
- [风信子培训]SQL注入+hgame