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发布模块的步骤分享
Feb 21 Python
python实现目录树生成示例
Mar 28 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
Pycharm 设置自定义背景颜色的图文教程
May 23 Python
python 动态迁移solr数据过程解析
Sep 04 Python
Django框架安装方法图文详解
Nov 04 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
Python操作Elasticsearch处理timeout超时
Jul 17 Python
Django 权限管理(permissions)与用户组(group)详解
Nov 30 Python
python Timer 类使用介绍
Dec 28 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 Python
详解Django的MVT设计模式
Apr 29 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
表单元素事件 (Form Element Events)
2009/07/17 Javascript
js 字符串操作函数
2009/07/25 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
2019/03/06 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
Python用模块pytz来转换时区
2016/08/19 Python
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
美国转售二手商品的电子商务平台:BLINQ
2018/12/13 全球购物
Footshop法国:购买运动鞋
2020/01/19 全球购物
"序列点" 是什么
2016/07/29 面试题
综治宣传月活动总结
2014/04/28 职场文书
安全生产工作汇报
2014/10/28 职场文书
物资采购管理制度
2015/08/06 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis