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中使用dict和set方法的教程
Apr 27 Python
python变量不能以数字打头详解
Jul 06 Python
Python合并字典键值并去除重复元素的实例
Dec 18 Python
Python中字符串格式化str.format的详细介绍
Feb 17 Python
python制作填词游戏步骤详解
May 05 Python
python多环境切换及pyenv使用过程详解
Sep 27 Python
Python多线程爬取豆瓣影评API接口
Oct 22 Python
python带参数打包exe及调用方式
Dec 21 Python
keras输出预测值和真实值方式
Jun 27 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 Python
Python与C++中梯度方向直方图的实现
Mar 17 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优化的8条经验
2008/03/24 PHP
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
php错误日志简单配置方法
2016/07/11 PHP
搭建自己的PHP MVC框架详解
2017/08/16 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
Python中的自定义函数学习笔记
2014/09/23 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
如何在django中实现分页功能
2020/04/22 Python
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
Java面试笔试题大全
2016/11/23 面试题
编辑求职信样本
2013/12/16 职场文书
农村婚礼证婚词
2014/01/08 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
如何用python清洗文件中的数据
2021/06/18 Python
SpringBoot集成Druid连接池连接MySQL8.0.11
2021/07/02 Java/Android