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基于scrapy采集数据时使用代理服务器的方法
Apr 16 Python
python获取元素在数组中索引号的方法
Jul 15 Python
python基于phantomjs实现导入图片
May 13 Python
python 读取文件并替换字段的实例
Jul 12 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
用Python+OpenCV对比图像质量的几种方法
Jul 15 Python
Python IDE Pycharm中的快捷键列表用法
Aug 08 Python
Python Web框架之Django框架Form组件用法详解
Aug 16 Python
python3使用GUI统计代码量
Sep 18 Python
PyTorch中的Variable变量详解
Jan 07 Python
什么是python的列表推导式
May 26 Python
python软件都是免费的吗
Jun 18 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
PHP5 的对象赋值机制介绍
2011/08/02 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
学习php分页代码实例
2013/10/24 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
jquery实现图片放大镜功能
2015/11/23 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
Python简明入门教程
2015/08/04 Python
基于Django filter中用contains和icontains的区别(详解)
2017/12/12 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
大学生求职推荐信
2013/11/27 职场文书
学生爱国演讲稿
2014/01/14 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
公司户外活动总结
2014/07/04 职场文书
餐厅周年庆活动方案
2014/08/25 职场文书
校长新学期致辞
2015/07/30 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers