美文网首页大数据 爬虫Python AI SqlPython小哥哥
简单爬虫:给女友定时发送睡前小故事!小女友直夸我贴心!

简单爬虫:给女友定时发送睡前小故事!小女友直夸我贴心!

作者: 14e61d025165 | 来源:发表于2019-03-20 14:06 被阅读17次

<main>

<article class="baidu_pl">

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

加群:683380553 获取源码以及随时答疑的交流基地!

http://www.tom61.com/ertongwenxue/shuiqiangushi/

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

image

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


image

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

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

http://www.tom61.com/ertongwenxue/shuiqiangushi/2018-02-25/106432.html,接下来要做的就是提取出该链接:

模拟浏览器访问网页,利用requests库请求访问

代码实现:

def getHTMLText(url,headers):
    try:
        r=requests.get(url,headers=headers,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        #print(r.text)
        return r.text

    except:
        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'})
    #print(t)
    i=t.find_all('a')
    #print(i)
    for link in i:
        urllist.append(url+link.get('href'))
        namelist.append(link.get('title'))

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

查看网页源代码

image

重新对该网页进行页面解析,提取出所有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='870407139@qq.com'                                 #发送方邮箱
    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,将该脚本文件加入任务计划程序库,设置运行时间和频率

image

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

image

</article>

</main>

相关文章

  • 简单爬虫:给女友定时发送睡前小故事!小女友直夸我贴心!

    最近,某可爱要求我忙完之后给她每晚睡前讲讲小故事,我想了下,网络上应该有各种资源,小故事也都能搜得到...

  • 哄女朋友睡前故事

    哄女友睡前温馨小故事 16-09-13 49633yt7... + 关注献花(1) 收藏 哄女友睡前温馨小故事篇一...

  • 哄女朋友睡前故事

    哄女友睡前温馨小故事 16-09-13 49633yt7... + 关注献花(1) 收藏 哄女友睡前温馨小故事篇一...

  • 给女友的睡前小故事

    在很久很久以前…… 一座古老的城堡里边的水晶床上 躺着一位可爱善良美丽的公主 她被一位巫婆诅咒 只能在这睡了过去 ...

  • 给女友讲的睡前小故事

    冬天很冷,小兔子心心念叨小狐狸一个狐在外面,害怕他受冻 小兔子看到别人都在给自己喜欢的人织围巾,听说戴上喜欢你的人...

  • 讲给女友的睡前小故事

    从前,有一个国王, 他想为自己的儿子——王子殿下, 找一位最最美丽的公主, 不过有要求公主的体重不多不少100斤才...

  • 讲给女友听的睡前小故事

    在快节奏的城市里生活,白天的情侣可能都各自上班,只有晚上才有时间见面,这个时候说给女朋友的小故事就成了交流...

  • 哄女友睡前暖心小故事

    “大爷,你以后都不霸道了吗?”小白兔认真地看着狼。“当然,狼大爷说话算话!”狼恨不得立正敬礼,“我对着你美丽的大眼...

  • 哄女友睡前暖心小故事

    住在山下的小兔子,最近心里藏了一个小秘密。 那个小秘密,是一只住在对面山头的红尾巴小狐狸。 小兔子去集市买菜的时候...

  • 哄女友睡前暖心小故事【小木匠】

    小木匠12岁那年没了爸妈,他不爱说话。渐渐的,没人要和他做朋友。 村里的老人爱给娃娃们讲故事:”……海妖落泪成珠,...

网友评论

    本文标题:简单爬虫:给女友定时发送睡前小故事!小女友直夸我贴心!

    本文链接:https://www.haomeiwen.com/subject/pzmzmqtx.html