python中用Scrapy实现定时爬虫的实例讲解


Posted in Python onJanuary 18, 2021

一般网站发布信息会在具体实现范围内发布,我们在进行网络爬虫的过程中,可以通过设置定时爬虫,定时的爬取网站的内容。使用python爬虫框架Scrapy框架可以实现定时爬虫,而且可以根据我们的时间需求,方便的修改定时的时间。

1、Scrapy介绍

Scrapy是python的爬虫框架,用于抓取web站点并从页面中提取结构化的数据。任何人都可以根据需求方便的修改。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

2、使用Scrapy框架定时爬取

import time
from scrapy import cmdline
def doSth():
  # 把爬虫程序放在这个类里 zhilian_spider 是爬虫的name
  cmdline.execute('scrapy crawl zhilian_spider'.split())
# 想几点更新,定时到几点
def time_ti(h=17, m=54):
  while True:
    now = datetime.datetime.now()
    # print(now.hour, now.minute)
    if now.hour == h and now.minute == m:
      doSth()
    # 每隔60秒检测一次
    time.sleep(60)
time_ti()

3、更简单的写法

import time
import sys
import os
import datetime
def Dingshi():
while True:
os.system("scrapy crawl lcp")#lcp是我们爬虫的代码名字哦
time.sleep(60)
Dingshi()

知识点扩展:

直接使用Timer类实例代码

import time
import os
while True:
 os.system("scrapy crawl News")
 time.sleep(86400) #每隔一天运行一次 24*60*60=86400s或者,使用标准库的sched模块
import sched
#初始化sched模块的scheduler类
#第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。
schedule = sched.scheduler ( time.time, time.sleep )
#被周期性调度触发的函数
def func():
 os.system("scrapy crawl News")
def perform1(inc):
 schedule.enter(inc,0,perform1,(inc,))
 func() # 需要周期执行的函数
def mymain():
 schedule.enter(0,0,perform1,(86400,))
if __name__=="__main__":
 mymain()
 schedule.run() # 开始运行,直到计划时间队列变成空为止关于cmd的实现方法,本人在单次执行爬虫程序时使用的是 
cmdline.execute("scrapy crawl News".split())但可能因为cmdline是scrapy模块中自带的,所以定时执行时只能执行一次就退出了。

到此这篇关于python中用Scrapy实现定时爬虫的实例讲解的文章就介绍到这了,更多相关python中使用Scrapy实现定时爬虫内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python多线程编程(八):使用Event实现线程间通信
Apr 05 Python
浅谈Python的异常处理
Jun 19 Python
python 调用HBase的简单实例
Dec 18 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
May 11 Python
Python做智能家居温湿度报警系统
Sep 25 Python
对Tensorflow中tensorboard日志的生成与显示详解
Feb 04 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
python3 sleep 延时秒 毫秒实例
May 04 Python
python 利用jieba.analyse进行 关键词提取
Dec 17 Python
只需要这一行代码就能让python计算速度提高十倍
May 24 Python
Python实现自动玩连连看的脚本分享
Apr 04 Python
Python PIL按比例裁剪图片
May 11 Python
java关于string最常出现的面试题整理
Jan 18 #Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 #Python
python中四舍五入的正确打开方式
Jan 18 #Python
PyQt5中QSpinBox计数器的实现
Jan 18 #Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 18 #Python
PyQt实现计数器的方法示例
Jan 18 #Python
Python实现邮件发送的详细设置方法(遇到问题)
Jan 18 #Python
You might like
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
关于PHP开发的9条建议
2015/07/27 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
2016/02/19 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
一个收集图片的bookmarlet(js 刷新页面中的图片)
2010/05/27 Javascript
Firefox中autocomplete="off" 设置不起作用Bug的解决方法
2011/03/25 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
python自动安装pip
2014/04/24 Python
python标准算法实现数组全排列的方法
2015/03/17 Python
介绍Python的@property装饰器的用法
2015/04/28 Python
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
毕业寄语大全
2014/04/09 职场文书
作文批改评语大全
2014/04/23 职场文书
运动会广播稿诗歌版
2014/09/12 职场文书
领导干部群众路线教育实践活动剖析材料
2014/10/10 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
写给老婆的保证书
2015/02/27 职场文书
少年雷锋观后感
2015/06/10 职场文书
企业愿景口号
2015/12/25 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python