前言:
眼前姐妹们对“python推送消息”大概比较讲究,同学们都需要知道一些“python推送消息”的相关文章。那么小编同时在网上收集了一些关于“python推送消息””的相关文章,希望看官们能喜欢,小伙伴们快快来了解一下吧!本文利用了简单的Python爬虫、邮件发送以及定时任务实现了每天 定时发送睡前小故事 的功能,是一篇步骤详尽的文章。 经过测试,该 程序仍能正常运行 。
最近,某可爱要求我忙完之后给她每晚睡前讲讲小故事,我想了下,网络上应该有各种资源,小故事也都能搜得到,但是数量比较少,而且格式不够统一,提取比较困难。转念一想,面向儿童的睡前故事可能也比较适用,于是我准备从儿童睡前故事中取材
一共有700则小故事,嗯,一天一则数量可以满足,html格式也比较统一,就决定是它了!另外注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你缺新项目练习或者没有python精讲教程,可以【转发本文+关注,私信我 ‘p’ 自动获取哦】,还可以跟老司机交流讨教!
查看网页源代码,ctrl+F输入查询关键字幸福王国,定位到相关信息:
发现其故事链接包含在dl标签中的a标签中的href属性,接下来要做的就是提取出该链接:
模拟浏览器访问网页,利用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 "爬取失败"
简单地使用BeautifulSoup库,解析html页面
找到dl标签的内容后在查找a标签中的内容,将提取的链接与原网页头进行拼接:
def parsehtml(namelist,urllist,html): url='; 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'] = 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,正文内容为爬取的小故事
实现定时发送功能
在windows的环境中,在cmd中输入compmgmt.msc,将该脚本文件加入任务计划程序库,设置运行时间和频率
这样就能实现每晚九点定时发送睡前小故事啦!
后来我还找到了一个英文故事网站,用同样的思路完成爬取—推送的操作。你可以选择一天推送中文故事,一天推送英文故事,岂不妙哉?另外注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你缺新项目练习或者没有python精讲教程,可以【转发本文+关注,私信我 ‘p’ 自动获取哦】,还可以跟老司机交流讨教!
本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
标签: #python推送消息