• 每晚一个小故事


    import requests
    from bs4 import BeautifulSoup
    import smtplib
    from email.mime.text import MIMEText
    import random
    
    
    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 "爬取失败"
    
    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'))
    
    
    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 "
    ".join(text)
    
    def sendemail(url,headers):
    
        msg_from='xxxxx@qq.com'           #发送方邮箱
        passwd='xxxxxx'             #填入发送方邮箱的授权码
        receivers=['xxxxxx@qq.com']         #收件人邮箱
    
        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()
    
    def main():
    
    
        headers = {'User-Agent':'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
                   }
    
        urllist=[]
        namelist=[]
        for i in range(1,11):
            if i==1:
                url='http://www.tom61.com/ertongwenxue/shuiqiangushi/index.html'
            else:
                url='http://www.tom61.com/ertongwenxue/shuiqiangushi/index_'+str(i)+'.html'
            print ("正在爬取第%s页的故事链接:" % (i))
            print (url+'
    ')
            html=getHTMLText(url,headers)
            parsehtml(namelist,urllist,html)
        print("爬取链接完成")
        '''
        for i in urllist:
            html=getHTMLText(i,headers)
            parsehtml2(html)
        '''
        sendemail(random.choice(urllist),headers)
    if __name__=='__main__':
        main()

    每晚一个小故事,祝君好梦。mua~

  • 相关阅读:
    python方式安装sentry
    nexus私服仓库mavenmetadata.xml缺失导致的构建失败或者下载504
    Hadoop2.7.2+zookeeper3.4.6完全分布式环境搭建(HDFS、YARN HA)
    ssh远程主机秘钥失效的解决方法(ssh黄金参数)
    解决报错libssl.so.1.1: cannot open shared object file: No such file or directory
    nginx:TIME_WAIT过多或者CLOSE_WAIT过多的状态
    python2 读写mysql
    Visual Studio展开和折叠函数代码和禁止自动展开
    干货分享:小技巧大用处之Bean管理类工厂多种实现方式
    小别
  • 原文地址:https://www.cnblogs.com/wdz1226/p/10645405.html
Copyright © 2020-2023  润新知