python 提取网页正文_用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事...
↑ 关注 + 星标 ,每天学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写个爬虫小程序,给女朋友每日定时推送睡前小故事...相关推荐
- 用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事
导读:这篇文章利用简单的Python爬虫.邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详尽的文章. 最近,某可爱要求我忙完之后给她每晚睡前讲讲小故事,我想了下,网络上应该有各种资 ...
- 教你用Python 每日定时推送睡前小故事给你__的人
本文利用了简单的Python爬虫.邮件发送以及定时任务实现了每天 定时发送睡前小故事 的功能,是一篇步骤详尽的文章. 经过测试,该 程序仍能正常运行 . 最近,某可爱要求我忙完之后给她每晚睡前讲讲小故 ...
- python 提取网页正文_小苹果来科普 | 关于python爬虫的那些事儿
python爬虫--抓取小说 爬虫=Python? 网络爬虫是什么? 不好意思,这些网上查的到的东西我不愿意打字啊,请移步百度百科-- 使用python抓取网页信息少不了一些有关html的知识 首先要 ...
- python 提取网页正文_一篇文章教会你用Python爬取淘宝海量信息,把淘宝商品整理成一个表格...
最近看了爬虫又新做了个小作品,来瞅瞅吧~~~ 正文开始 因为最近想买ipad,所以想要尝试一下吧 淘宝 上所有ipad商品做一个统计,把所有ipad商品的信息集合到一个excel里,那么使用爬虫这个程 ...
- Python 提取网页正文,将网页转为图片!
Python 提取网页正文,将网页转为图片!!! 用到python的newspaper库 from newspaper import Article news = Article(link.strip ...
- python写微信小程序源码示例_python实现微信小程序用户登录、模板推送
python实现微信小程序用户登录.模板推送 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: python实现微信小程序用户登录.模板推送.txt ] (友情提示 ...
- python提取html正文为txt,python 提取html文本的方法
假设我们需要从各种网页中提取全文,并且要剥离所有HTML标记.通常,默认解决方案是使用BeautifulSoup软件包中的get_text方法,该方法内部使用lxml.这是一个经过充分测试的解决方案, ...
- python 爬网页通知_用Python实现一个爬取XX大学电费通知的小脚本
内容简要 1分析网站 2简单爬取 3进阶自定义爬取 4保存进数据库 学校基础设施太差,宿舍电量过低提醒虽然贴在楼下,但是作为低头一族,经常忘记看提醒导致宿舍酣战时突然黑屏,为了避免这种尴尬的场景以及强 ...
- python操作网页游戏_教你写页游自动化Python脚本 1.界面篇(模仿某键精灵)[Python3]...
自学py写的第一个脚本 本教程为新手向废话少说,下面开始教程 我们先用tkinter搭建好脚本的基本界面 首先导入tkinter,需要事先用pip安装进python里(方法自行百度) import t ...
最新文章
- 手把手教你写一个生成对抗网络
- 4个提高深度学习模型性能的技巧
- PS2 KBC will hang
- Python才排第8名!2018增速最快TOP 10编程语言盘点
- java程序打包为jar_将Java应用程序打包为一个(或胖)JAR
- Linux触发连锁反应,惠及全球
- 通过TextWatcher去观察输入框中输入的内容以及输入字符个数
- 边看边练之Django(二)---- Django的URL设置
- 软件项目管理的重点知识
- 史上最全人工智能英文原版PDF教材1.03G资源包Artificial Intelligence
- python第三方库文件传输助手_Python与微信——itchat包
- 10首不可不读的苏轼“最”诗词,人间万事,不过如此!
- 如何才能把文字的排版做好
- 批量将不同文件夹目录中的文件统一提取到同一个文件夹中
- [CTF]Brainfuck/Ook!编码
- VC++通过查看ReactOS开源代码,解决完整路径dll加载失败问题(附源码)
- 你是怎样毁掉自己的?
- 软件界面交互式设计注意事项
- BOOST电路的节点电压和电流分析
- android 图库显示,【Android】 保存图片到系统图库, 并立即显示在图库中
热门文章
- 急,有谁知道创业无息贷款的流程是怎样的?
- 异常Could not load file or assembly 'XXX' or one of its dependencies. 参数出错...
- 关于学校计算机维修请示,学校维修请示范文
- 全网详细介绍百度低代码框架amis及实例讲解
- 双十一惊喜:任性返场,优惠今晚24:00截止!
- 阿里巴巴图标库(iconfont)批量全选图标加入购物车(保姆级图文+实现代码)【杂记】
- elk + kafka 简单搭建日志分析系统
- HDOJ 5512 Pagodas(qwb铜牌水题 数学找规律)
- 任意两点间距离最短之Floyd算法
- 静态类型/动态类型/强类型/弱类型