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实现挑选出来100以内的质数
Mar 24 Python
简单的连接MySQL与Python的Bottle框架的方法
Apr 30 Python
python并发编程之多进程、多线程、异步和协程详解
Oct 28 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
Python采集代理ip并判断是否可用和定时更新的方法
May 07 Python
Python通用函数实现数组计算的方法
Jun 13 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
flask框架渲染Jinja模板与传入模板变量操作详解
Jan 25 Python
python opencv 检测移动物体并截图保存实例
Mar 10 Python
在CentOS7下安装Python3教程解析
Jul 09 Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 Python
用python实现一个简单的验证码
Dec 09 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
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
两个Javascript小tip资料
2010/11/23 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
javascript常用函数(1)
2015/11/04 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
python实现线程池的方法
2015/06/30 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
汽车专业人才自我鉴定范文
2013/12/29 职场文书
企业军训感言
2014/02/08 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
解析MySQL binlog
2021/06/11 MySQL
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle