↑ 关注 + 星标 ,每天学Python新技能后台回复【大礼包】送你Python自学大礼

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

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

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_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. 得到所有网页链接地址之后,访问该网页

查看网页源代码:


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,将该脚本文件加入任务计划程序库,设置运行时间和频率。


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


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

当然本文只是提供一个想法,你可以基于这个思路实现更多有意思的案例,本文的源码可以在后台回复「故事」获取!

推荐阅读

高中生写LOL外挂1年狂赚500万,落网前刚买百万保时捷...

Python已经世界第一了,听说你还不会?

中国程序员最容易发音错误的单词

前同事通过接私活年入60W,他常用19个私活平台汇总!

在GitHub上很火的996.ICU,现如今到底怎么样了?结果有些出乎意料!

华为阿里下班时间曝光:所有的光鲜,都有加班的味道

推荐我的微信号


来围观我的朋友圈,每天都有更新,坑位有限,速速扫码添加
备注:
开发方向_昵称_城市,另送你Python学习全套大礼包,

后台回复【大礼包】送你我整理的全套Python自学资料,再也不用到处找资料了

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

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

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

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

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

  3. python 提取网页正文_小苹果来科普 | 关于python爬虫的那些事儿

    python爬虫--抓取小说 爬虫=Python? 网络爬虫是什么? 不好意思,这些网上查的到的东西我不愿意打字啊,请移步百度百科-- 使用python抓取网页信息少不了一些有关html的知识 首先要 ...

  4. python 提取网页正文_一篇文章教会你用Python爬取淘宝海量信息,把淘宝商品整理成一个表格...

    最近看了爬虫又新做了个小作品,来瞅瞅吧~~~ 正文开始 因为最近想买ipad,所以想要尝试一下吧 淘宝 上所有ipad商品做一个统计,把所有ipad商品的信息集合到一个excel里,那么使用爬虫这个程 ...

  5. Python 提取网页正文,将网页转为图片!

    Python 提取网页正文,将网页转为图片!!! 用到python的newspaper库 from newspaper import Article news = Article(link.strip ...

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

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

  7. python提取html正文为txt,python 提取html文本的方法

    假设我们需要从各种网页中提取全文,并且要剥离所有HTML标记.通常,默认解决方案是使用BeautifulSoup软件包中的get_text方法,该方法内部使用lxml.这是一个经过充分测试的解决方案, ...

  8. python 爬网页通知_用Python实现一个爬取XX大学电费通知的小脚本

    内容简要 1分析网站 2简单爬取 3进阶自定义爬取 4保存进数据库 学校基础设施太差,宿舍电量过低提醒虽然贴在楼下,但是作为低头一族,经常忘记看提醒导致宿舍酣战时突然黑屏,为了避免这种尴尬的场景以及强 ...

  9. python操作网页游戏_教你写页游自动化Python脚本 1.界面篇(模仿某键精灵)[Python3]...

    自学py写的第一个脚本 本教程为新手向废话少说,下面开始教程 我们先用tkinter搭建好脚本的基本界面 首先导入tkinter,需要事先用pip安装进python里(方法自行百度) import t ...

最新文章

  1. 手把手教你写一个生成对抗网络
  2. 4个提高深度学习模型性能的技巧
  3. PS2 KBC will hang
  4. Python才排第8名!2018增速最快TOP 10编程语言盘点
  5. java程序打包为jar_将Java应用程序打包为一个(或胖)JAR
  6. Linux触发连锁反应,惠及全球
  7. 通过TextWatcher去观察输入框中输入的内容以及输入字符个数
  8. 边看边练之Django(二)---- Django的URL设置
  9. 软件项目管理的重点知识
  10. 史上最全人工智能英文原版PDF教材1.03G资源包Artificial Intelligence
  11. python第三方库文件传输助手_Python与微信——itchat包
  12. 10首不可不读的苏轼“最”诗词,人间万事,不过如此!
  13. 如何才能把文字的排版做好
  14. 批量将不同文件夹目录中的文件统一提取到同一个文件夹中
  15. [CTF]Brainfuck/Ook!编码
  16. VC++通过查看ReactOS开源代码,解决完整路径dll加载失败问题(附源码)
  17. 你是怎样毁掉自己的?
  18. 软件界面交互式设计注意事项
  19. BOOST电路的节点电压和电流分析
  20. android 图库显示,【Android】 保存图片到系统图库, 并立即显示在图库中

热门文章

  1. 急,有谁知道创业无息贷款的流程是怎样的?
  2. 异常Could not load file or assembly 'XXX' or one of its dependencies. 参数出错...
  3. 关于学校计算机维修请示,学校维修请示范文
  4. 全网详细介绍百度低代码框架amis及实例讲解
  5. 双十一惊喜:任性返场,优惠今晚24:00截止!
  6. 阿里巴巴图标库(iconfont)批量全选图标加入购物车(保姆级图文+实现代码)【杂记】
  7. elk + kafka 简单搭建日志分析系统
  8. HDOJ 5512 Pagodas(qwb铜牌水题 数学找规律)
  9. 任意两点间距离最短之Floyd算法
  10. 静态类型/动态类型/强类型/弱类型