导读:这篇文章利用简单的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写个爬虫小程序,给女朋友每日定时推送睡前小故事相关推荐

  1. python 提取网页正文_用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事...

    ↑ 关注 + 星标 ,每天学Python新技能后台回复[大礼包]送你Python自学大礼 导读:这篇文章利用简单的Python爬虫.邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详 ...

  2. 齁甜齁甜!用代码给女朋友每日定时推送睡前小故事

    作者 | 老肥 来源 | 老肥码码码 这篇文章是去年我在博客上写的一篇基础爬虫,利用了简单的Python爬虫.邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详尽的文章.经过测试,该 ...

  3. 教你用Python 每日定时推送睡前小故事给你__的人

    本文利用了简单的Python爬虫.邮件发送以及定时任务实现了每天 定时发送睡前小故事 的功能,是一篇步骤详尽的文章. 经过测试,该 程序仍能正常运行 . 最近,某可爱要求我忙完之后给她每晚睡前讲讲小故 ...

  4. 给女朋友推送睡前小故事

    上一篇写了给女朋友推送天气的,但是未免太单调,来个推送睡前小故事 这次用的是这个网站http://www.tom61.com/ertongwenxue/shuiqiangushi/index_2.ht ...

  5. python写微信小程序源码示例_python实现微信小程序用户登录、模板推送

    python实现微信小程序用户登录.模板推送 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  python实现微信小程序用户登录.模板推送.txt ] (友情提示 ...

  6. 小程序云开发之消息推送功能

    小程序云开发之消息推送功能(图文) 一:新建项目 APPID获取方法:1.在微信公众平台上注册账号,选择小程序(也可以从服务号注册,前提你有一个服务号)注册后登录,登录时微信扫码验证一下 2.填写小程 ...

  7. 微信小程序 调取云函数 信息推送失败response out of time limit or subscription is canceled hint的具体解决方法

    微信小程序 调云函数 信息推送失败,提示errcode":45015,"errmsg":"response out of time limit or subsc ...

  8. 微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ

    微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ 一.获取用户信息 1.首先我们需要了解什么是微信用户的OpenID 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密 ...

  9. 一图了解App跳转微信小程序关注公众号,推送消息

    一图了解App跳转微信小程序关注公众号,推送消息:

最新文章

  1. [持续更新][小工具]计算器
  2. 反射和内省_单例设计模式–内省和最佳实践
  3. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第15篇]RSA-OAEP和ECIES的密钥生成,加密和解密
  4. 给本地Git配置账号信息
  5. 【雷达通信】基于Matlab GUI中重频PD雷达仿真系统【含Matlab源码 1055期】
  6. feign 获取请求真实目的ip地址
  7. java计算机毕业设计HTML5旅游网站源码+mysql数据库+系统+lw文档+部署
  8. 软件打不开且显示乱码的解决办法
  9. 虎年全新姓氏头像制作多模板微信小程序2022新版头像制作源码支持多种流量主模式亲测
  10. win10重置网络命令_WIN10重置网络的操作方法
  11. 《音视频开发》系列-总览
  12. 移动互联网十年内难以盈利 莫盲目跟风
  13. C# /.NET6 实现语音转文字(科大讯飞语音转文字接口)
  14. Windows 利用Anaconda创建pytorch等环境
  15. Eclipse各版本代号一览表以及官网上有很多版本的eclipse的比较
  16. html 窗口左边悬浮ul,js + css实现左侧悬浮导航栏
  17. 类似余额宝数值增加的动画
  18. 4月6日—4月10日四年级课程表
  19. css特效开发,7款吸引人眼球的jQuery/CSS3特效实例分享
  20. [风信子培训]SQL注入+hgame

热门文章

  1. 2019一键清空朋友圈_批量清理朋友圈说说
  2. 基于FAST的TSN交换(7)TSN网络接口适配器需求分析与实现模型
  3. 洛谷 P2657 (数位DP)
  4. 递归和回溯相关面试算法总结
  5. 在Web 3D 游戏开发的前端如何快速上手进行
  6. 旗舰计算机系统蓝图,【求助】求助大神给这些蓝图一个参考定价
  7. 前端模拟终端(三):文本显示与自动换行
  8. 浙江美格机械股份有限公司董事长——刘国方
  9. IP Camera 和 Web Camera 差分
  10. html 文本转语音,百度文字转语音免费接口使用实例