python爬取追更的小说

追的小说更新时间不准确,有时追更要多次去看看更新没有,很烦。于是像用python监控,一旦更新就直接把内容发给我。

为了爬取方便,这里找个不需要登陆的小说网站《大王饶命》。

getnovel.py

from bs4 import BeautifulSoup
import requests
import os
import mail #这是我自己写的一个发邮件的py文件

def makeFileFromUrl(url,name):
    root = "/home/pythoncode/dawangraoming/novel/"
    path = root + name + ".txt"
    if not os.path.exists(root):
        os.mkdir(root)
    if os.path.exists(path):
        return
    r = requests.get(url)
    r.encoding = r.apparent_encoding
    soup = BeautifulSoup(r.text,"html5lib")
    content = soup.find("div",{"id":"content"})
    f = open(path,'wb')
    for i in content.contents:
        if(i.string):
            f.write(i.string.encode('utf-8'))
    f.close()
    f = open(path)
    s=f.read()
    mail.send(title=name,content=s)


novel = "http://www.biqugexsw.com/35_35872/"
url1="http://www.biqugexsw.com"
r = requests.get(novel)
r.encoding = r.apparent_encoding
soup = BeautifulSoup(r.text,"html5lib")
dd = soup.findAll("dd")

for i in range(3):
    a = dd[2-i].find("a")
    makeFileFromUrl(url1 + a['href'],a.string)

mail.py (这里需要自己的邮箱密码,不会的可以看我之前爬天气的文章)

import smtplib
from email.mime.text import MIMEText
from email.header import Header


def send(content = 'nothing',toUser = '814015815@qq.com',title = "from my server",fromer = "myServer"):
        sender='814015815@qq.com'     # 发件人邮箱账号
        num = '' # 发件人邮箱密码(当时申请smtp给的口令)
        msg = MIMEText(content,'plain','utf-8')
        msg['From'] = Header(fromer,"utf-8")
        msg['To'] = Header(toUser,'utf-8')
        msg['Subject'] = title
        try:
                server = smtplib.SMTP_SSL('smtp.qq.com',465)
                #server.set_debuglevel(1)
                server.login(sender,num)
                server.sendmail(sender,[toUser],msg.as_string())
                server.quit()
                return 1
        except Exception:
                return 0

然后用crontab 配置按时打开,因为我云服务器比较空闲,这里配置每十分钟执行一次。不会配置的也可以看我之前爬天气的文章。

笔记:linux新建的sh文件没有执行权限,要修改权限才能执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值