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实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 Python
Python学习笔记之For循环用法详解
Aug 14 Python
利用Python的sympy包求解一元三次方程示例
Nov 22 Python
Python实现随机取一个矩阵数组的某几行
Nov 26 Python
pytorch中的自定义数据处理详解
Jan 06 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
Feb 18 Python
python将logging模块封装成单独模块并实现动态切换Level方式
May 12 Python
Python 列表中的修改、添加和删除元素的实现
Jun 11 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 Python
java关于string最常出现的面试题整理
Jan 18 Python
python数据分析之用sklearn预测糖尿病
Apr 22 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中用header图片地址 简单隐藏图片源地址
2008/04/09 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
php模板引擎技术简单实现
2016/03/15 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
JavaScript变量声明详解
2014/11/27 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
原生JS使用Canvas实现拖拽式绘图功能
2019/06/05 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
python实现给字典添加条目的方法
2014/09/25 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
Python如何根据时间序列数据作图
2020/05/12 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
css3 position fixed固定居中问题解决方案
2014/08/19 HTML / CSS
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
C#如何进行LDAP用户校验
2012/11/21 面试题
门卫工作岗位职责
2013/12/17 职场文书
仓库门卫岗位职责
2013/12/22 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
《春天来了》教学反思
2014/04/07 职场文书
小学生评语集锦
2014/04/18 职场文书
劳资协议书范本
2014/04/23 职场文书
洗手间标语
2014/06/23 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS