本文利用了简单的Python爬虫、邮件发送以及定时任务实现了每天 定时发送睡前小故事 的功能,是一篇步骤详尽的文章。 经过测试,该 程序仍能正常运行 。

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

tom61.com/ertongwenxue/

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

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

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

/ertongwenxue/shuiqiangushi/2018-02-25/106432.html,点击后得到完整网址

tom61.com/ertongwenxue/,接下来要做的就是提取出该链接:

模拟浏览器访问网页,利用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 "爬取失败"

简单地使用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'))

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

查看网页源代码

重新对该网页进行页面解析,提取出所有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)

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

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,正文内容为爬取的小故事

实现定时发送功能

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

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

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

教你用Python 每日定时推送睡前小故事给你__的人相关推荐

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

    导读:这篇文章利用简单的Python爬虫.邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详尽的文章. 最近,某可爱要求我忙完之后给她每晚睡前讲讲小故事,我想了下,网络上应该有各种资 ...

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

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

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

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

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

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

  5. 用python爬取网上的睡前小故事,然后每天给女票发。哈哈哈

    今天看了有人用python爬故事,给女票每天发邮箱过去.看了一下感觉很棒,然后又看了评论,有说要是发微信就更好了. 所以...... 我就做了一个发微信的,哈哈. 先上结果 www.tom61.com ...

  6. android 定时推送提醒,使用workManager实现每日定时推送通知

    写这篇博客的缘由来自一个需求: 每日定时推送通知,提醒用户完成签到.如果后台被清理,则在打开App后立即推送. 众所周知,如今的Android国产ROM想要实现定时操作需要做极强的保活.然而一旦做了保 ...

  7. CSDN日报190318:简单爬虫:给女友定时发送睡前小故事

    程序人生 | 简单爬虫:给女友定时发送睡前小故事 作者:librauee 最近,某可爱要求我忙完之后给她每晚睡前讲讲小故事,我想了下,网络上应该有各种资源,小故事也都能搜得到,但是数量比较少,而且格式 ...

  8. 每天定时给你的女朋友发送睡前小故事其二

    我们在文章<每天定时给你的女朋友发送睡前小故事其一>中说了如何爬取故事并且发送,并且已经达到目的了,那么我们如何在我们的windows上设置定时任务,每天按时的执行我们的代码呢?接下来听我 ...

  9. 微信每日定时推送消息新闻到群聊或朋友

    本项目使用python来完成每日在群聊中或者给朋友推送新闻.主要使用python的wxauto库来完成此功能. 想要完成以上任务,需要安装3.8.10版本的python和最新版本的PC端微信. 另外, ...

最新文章

  1. java实现遍历树形菜单方法——service层
  2. laravel conf/app.php
  3. 雅克比迭代法求方程组的解(Python实现)
  4. 百合网婚礼产品总监徐德生:电商类产品的转化率为何总是令人心碎?
  5. 一台服务器上部署多个Terracotta的方法
  6. NVIDIA H264解码是硬件电路还是CUDA
  7. 不同vlan间通讯单臂路由和三层交换机
  8. NginxLua实现WAF防火墙
  9. 洛谷.P3374 树状数组
  10. 图像识别,ocr 技术,有兴趣的可以了解一下
  11. RuntimeError: CUDA error: no kernel image is available for execution on the driver
  12. 基于51单片机的智能家居安防系统(程序+仿真+PCB)
  13. Shader——消融效果
  14. 低调做人,你会一次比一次稳健;高调做事,你会一次比一次优秀!(偷来的自己留着学习)
  15. Linux中消息机制的通信原理,android QMI机制---概论
  16. 会计python库_具有xirr和xnpv功能的财务python库?
  17. 数据同步神器Canel-day01
  18. oracle分页查询sql语句的rn,Mysql和Oracle中的分页SQL语句
  19. FPGA实现VGA显示图像(VHDL版)
  20. Markdown第一次使用笔记

热门文章

  1. javascript-数组数据类型属性和方法-数组的遍历
  2. SQL Server查询锁等待
  3. [CF.Skills]Windows Mobile如何编程实现免提功能
  4. 最新版Byte Buddy完全支持Java 11
  5. 使用集搜客爬取酷狗排行歌曲信息
  6. 初学者指南:服务器基本技术名词
  7. iOS 关于真机和模拟器framework合并
  8. 【转】Linux的五个查找命令:find,locate,whereis,which,type
  9. Android Logcat 报错:Could not create the view: For input string:
  10. PowerTip of the Day-Finding Invalid Aliases