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 相关文章推荐
sublime text 3配置使用python操作方法
Jun 11 Python
Python之自动获取公网IP的实例讲解
Oct 01 Python
ubuntu中配置pyqt4环境教程
Dec 27 Python
对python requests的content和text方法的区别详解
Oct 11 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
django的ORM操作 增加和查询
Jul 26 Python
对Django 转发和重定向的实例详解
Aug 06 Python
django 通过url实现简单的权限控制的例子
Aug 16 Python
python实现文法左递归的消除方法
May 22 Python
Python读取Excel数据并生成图表过程解析
Jun 18 Python
Python字典取键、值对的方法步骤
Sep 30 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
Feb 23 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程序员的13个好习惯小结
2012/02/20 PHP
php截取字符串函数分享
2015/02/02 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
js表单验证实例讲解
2016/03/31 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
vue2.0父子组件间传递数据的方法
2018/08/16 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
JavaScript Event Loop相关原理解析
2020/06/10 Javascript
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
python连接MySQL数据库实例分析
2015/05/12 Python
利用python批量检查网站的可用性
2016/09/09 Python
安装Python的教程-Windows
2017/07/22 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
python 初始化一个定长的数组实例
2019/12/02 Python
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
护士自我鉴定范文
2013/10/06 职场文书
捐资助学倡议书
2014/04/15 职场文书
本科毕业生自荐信
2014/06/02 职场文书
工人先锋号申报材料
2014/12/29 职场文书
工作检讨书大全
2015/01/26 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python
MySQL 查询速度慢的原因
2021/05/25 MySQL