Scrapy+crontab 定时爬取小说更新推送到手机邮件
Scrapy+crontab 定时爬取小说更新推送到手机邮件
本人酷爱追火星引力的《逆天邪神》小说,但经常是俩三天才一更,每天打开浏览器查看是否更新贼痛苦。现在利用所学的知识来解决问题。文章分三部分:一、爬取更新 二、发送邮件 三、定时任务。爬虫内容简单,适合scrapy新手,重点在于发送邮件和定时任务。
一、爬取更新
小说地址:http://m.zongheng.com/h5/book?bookid=408586
页面图片:
1.创建工程project
选择一个目录:/home/yunge/code/spiders/
执行命令:
scrapy startproject xiaoshuo
2.创建spider
进入工程内,执行命令:
cd /xiaoshuo/xiaoshuo
创建spider,执行命令:
scrapy genspider nitianspider zongheng.com
3.items.py 填空
import scrapy
class XiaoshuoItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()chapter=scrapy.Field()updatetime=scrapy.Field()
4.nitiansipder.py
# -*- coding: utf-8 -*-
import scrapy
from xiaoshuo.items import XiaoshuoItem
from scrapy.mail import MailSenderclass NitianspiderSpider(scrapy.Spider):name = 'nitianspider'allowed_domains = ['zongheng.com']start_urls = ['http://m.zongheng.com/h5/book?bookid=408586']def parse(self, response):item=XiaoshuoItem()item['chapter']=response.xpath('//span[@class="last_tit"]/text()').extract()[0]item['updatetime']=response.xpath('//div[@class="time"]/text()').extract()[0]return item
二、发送邮件
5.pipelines.py
from scrapy.mail import MailSender
import scrapyclass XiaoshuoPipeline(object):def process_item(self, item, spider):with open ('nitianxieshen.txt','r') as fp:line=fp.readline().split('\t')if item['chapter']!=line[0]:Subject=u'小说《逆天邪神》更新啦!!!'Body=u'更新内容:\n%s\n点击地址:\nhttp://m.zongheng.com/h5/book?bookid=408586'%item['chapter'mailer=MailSender(smtphost="smtp.163.com",mailfrom="*****@163.com",smtpuser="******@163.com",smtppass="******",smtpport=25)mailer.send(to=['*******@qq.com'],subject=Subject.encode('utf8'),body=Body.encode('utf8'))with open('nitianxieshen.txt','w') as fp:fp.write(item['chapter'].encode('utf8')+'\t')fp.write(item['updatetime'].encode('utf8')+'\t\n')return item
6.settings.py
在最后一行添加:
ITEM_PIPELINES={'xiaoshuo.pipelines.XiaoshuoPipeline':2}
7.执行验证
首先创建文件 nitianxieshen.txt :
vim nitianxieshen.txt
随便写入内容,与爬取的内容不同,方便测试爬虫是否发送邮件成功。
执行命令:
scrapy crawl nitianspider
三、定时任务
8.在目录:/home/yunge/code/spider/xiaoshuo/xiaoshuo/ 下,
创建脚本crontab.sh,内容:
cd /home/yunge/code/spiders/xiaoshuo/xiaoshuo/
scrapy crawl nitianspider
9.脚本添加文件执行权限
执行命令:
chmod 774 crontab.sh
10.crontab 添加定时任务
执行命令:
crontab -e
写入:
30 */6 * * * /home/yunge/code/spiders/xiaoshuo/xiaoshuo/crontab.sh
从6:30开始,每隔6个小时执行一次crontab.sh。
11.取消脚本执行后发送电脑邮件
此邮件非爬虫里的邮件,是cron定时任务发送电脑用户(即yunge)的邮件,执行后会在命令端不断提醒。
重新修改:
crontab -e
内容:
30 */6 * * * /home/yunge/code/spiders/xiaoshuo/xiaoshuo/crontab.sh &> /dev/null
到此已经结束了,以后可以美滋滋地看小说了。。。
Scrapy+crontab 定时爬取小说更新推送到手机邮件相关推荐
- Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站
Ubuntu利用crontab+shell脚本实现Scrapy每日定时爬取网站 原创文章.码字不易,转载请注明出处和链接,谢谢! 1.环境保障 自己利用scrapy编写的智联招聘网站"大数据 ...
- 土拨鼠网站日记管理(分析推送二合一)】宝塔插件之自动爬取全站URL推送说明书
自动爬取全站URL推送说明书: 此功能将会针对爬取的站点进行全站URL爬取并且进行推送,爬取的每一条URL都会只推送一次,不会重复推送. 1.设置爬取的URL尽量是本服务器的站点,如果要推送别的站点可 ...
- 用python爬取公众号推送图片并保存为PPT
文章目录 一.前言 二.开始 (一)获取推送URL链接 (二)爬取网页并提取图片保存 1.定义用于爬取推送图片的PictureSpider类 2.定义get_url_text()方法 3.定义sear ...
- 记录使用scrapy爬取新闻网站最新新闻存入MySQL数据库,每天定时爬取自动更新
爬取每天更新的新闻,使用scrapy框架,Python2.7,存入MySQL数据库,将每次的爬虫日志和爬取过程中的bug信息存为log文件下.定义bat批处理文件,添加到计划任务程序中,自动爬取. 额 ...
- 用python自动爬取海贼王漫画推送kindle
作者丨白人 来源丨GitPython(GitPythoner) 链接: https://www.zhihu.com/question/34098079/answer/790127807 来源:知乎(作 ...
- 定时爬取学校官网讲座公告并邮件发给自己
文章目录 前言 流程 各部分说明 获取网页-Request库 从HTML中提取数据-BeautifulSoup库 BeautifulSoup-转换成`BeautifulSoup` 的对象 find() ...
- 爬虫学习,尝试爬取小说网站
初步学习了scrapy 尝试着爬取小说网站全部小说(发现没问题就停了) 以下为scrapy中基础爬虫的写法 # -*- coding: utf-8 -*- import scrapy from scr ...
- Python使用Scrapy爬虫框架爬取天涯社区小说“大宗师”全文
大宗师是著名网络小说作家蛇从革的系列作品"宜昌鬼事"之一,在天涯论坛具有超级高的访问量.这个长篇小说于2015年3月17日开篇,并于2016年12月29日大结局,期间每天有7万多读 ...
- Scrapy爬虫框架,爬取小说网的所有小说
Scrapy入门教程请看 目录 1.思路清理 2.创建爬虫项目 3. 爬虫架构构思 4.爬虫程序具体分析 5.效果展示 6.待优化的地方 1.思路清理 我们的目的是把某个小说网的所有小说给拿下,这就涉 ...
最新文章
- WinDbg用法详解
- 信息化基础建设系列文章汇总 .NET 平台业务项目实践
- PHP利用jpgraph类画折线图
- Use Asynchronous Apex
- Leetcode 930:和相同的二元子数组
- pytorch测试模型时根据不同列别的概率值得到具体的分类
- 的采样方式_DR803M4水质自动采样器(岸边站自动排空型)
- mysql 判断当前星期_MySQL数据库如何获取一个日期所对应的星期数呢?
- java使用kaptcha生成图片验证码
- 短视频源码:新兴行业的一匹黑马
- flask从表单中的提交中获取数据(不使用第三方库)
- 微信能上但浏览器无法上网
- 新浪云应用 mysql_云应用开发之新浪SAE读写云端数据库MySQL
- 一文了解开集输出结构open_drain
- Art of Problem Solving: Proof without Words
- 打开我的计算机我的文档不见,我电脑桌面上的我的文档不见了,是什么原因造成我的文档不见了呢?是? 爱问知识人...
- 【世界杯赛程表】v1.3 100614 我做的M8软件!
- mysql5.7 1698 28000,MYSQL教程MySql Error 1698(28000)问题的解决方法
- 优酷android 离线 导出来,手机优酷缓存的视频如何导出 缓存视频导出到电脑方法...
- 计算机语言学国外排名,美国语言学专业排名
热门文章
- ThreadPoolExecutor的shutDown和shutDownNow的区别
- WSL2使用xrdp实现Liunx图形化桌面
- 人人都在说的数据中台是什么?附9张架构图优质模板!
- 【windows更新】解决更新22h2卡在 “正在进行更新 24% 请不要关机” 问题
- 计算机英语是啥意思啊,玩电脑英语是什么意思
- 总体分布、样本分布、抽样分布的区别
- 配置ALB基于路径的路由功能
- Microsoft Office 2003 简体中文正式企业版
- 电大计算机后面的光盘有用吗,曾经风靡一时的光盘,为何现在很少有人用了?看完可算明白了...
- 安卓蓝牙BLE设备开发