项目需要程序能够放在超算中心定时运行,于是针对scrapy写了一个定时爬虫的程序main.py ,直接放在scrapy的存储代码的目录中就能设定时间定时多次执行。

最简单的方法:直接使用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模块中自带的,所以定时执行时只能执行一次就退出了。

小伙伴有种方法是使用

import subprocess

subprocess.Popen("scrapy crawl News")

她的程序运行正常可以定时多次执行,而我的却直接退出了,改为

from subprocess import Popen

subprocess.Popen("scrapy crawl News")

才正常,不知道为什么会这样,如果有大神可以解释原因还请指点。

反正

os.system、subprocess.Popen

都是pythoncmd的实现方法,可以根据需要选择使用。

总结

以上所述是小编给大家介绍的python实现scrapy定时执行爬虫,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

python 定时执行 爬虫 模块_浅析python实现scrapy定时执行爬虫相关推荐

  1. python中main的作用_浅析python 中__name__ = '__main__' 的作用

    很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...

  2. python测试代码与模块_测量Python代码运行时间

    Python 社区有句俗语: "python自己带着电池" ,别自己写计时框架. Python 2.3 具备一个叫做 timeit 的完美计时工具可以测量python代码的运行时间 ...

  3. python字典嵌套字典构造_浅析python 字典嵌套

    为什么需要嵌套? 有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套 .你可以在列表中嵌套字典.在字典中嵌套列表甚至在字典中嵌套字典. 字典列表 例如:字典alien_0包含 ...

  4. python 定时执行 爬虫 模块_【Python】定时执行网站爬虫

    今天我们额讨论如何使用Python,SQLite数据库与crontab工具将爬虫程序部署到服务器上并实现定时爬取存储 编写爬虫代码 编写一个爬虫程序,使用requests与beautifulsoup4 ...

  5. python如何导入自定义模块_【python】导入自定义模块

    一.直接import 1.当执行文件与要导入的py文件在同一目录下时 假设要在wangyi.py中导入weibo.py文件 import weibo 2.当执行文件与要导入的py文件所在文件夹在同一目 ...

  6. python 命令行解析模块_【Python模块】命令行解析--argparse

    python命令行解析 前言 当你还在使用 if len(sys.argv) > 1: 这样的方式判断选项和参数的时候,是否已意识到已经落伍了. 我在bash中用过getopt getopts, ...

  7. python getattr调用自己模块_在Python中通过getattr获取对象引用的方法

    getattr函数 (1)使用 getattr 函数,可以得到一个直到运行时才知道名称的函数的引用. >>> li = ["Larry", "Curly ...

  8. python中的utils模块_使用Python的package机制如何简化utils包设计详解

    package 机制 package是模块的集合,每一个Package的根目录下面都应当有一个__init__.py 文件.当解释器发现目录下有这个文件时,他就会认为这是一个Package,而不是一个 ...

  9. python闭包两种写法_浅析Python闭包

    一.什么是闭包python 在介绍闭包概念前,咱们先来看一段简短的代码数组 def sum_calc(*args):defwrapper(): sum=0for n inargs: sum+=n;re ...

最新文章

  1. 电力电子技术第五版王兆安pdf_电力电子技术笔记(考试必备)
  2. 2019诺贝尔生理学\医学奖率先颁出!英美3学者加冕,揭秘血与氧关系,抗击肿瘤和癌症...
  3. 天润融通java面试_【天润融通面试|面试题】-看准网
  4. LeetCode Minimum Depth of Binary Tree
  5. 计算机课程可在平板上做吗,老师做直播,孩子上网课,掌控线上学习就靠这个平板电脑了...
  6. Android Studio and Gradle are using different locations for the JDK
  7. 用R3写卡成PRL302,解决新电信卡PRL301只能1X不能上3G问题
  8. azure java_使用 Java 的 Azure 存储示例 | Microsoft Docs
  9. 结构体Sqlist L与Sqlist L的区别
  10. SPSS软件安装与常见入门问题
  11. 推荐5个4K视频下载网站 (百万优质资源)
  12. javascript/js替换内容
  13. 编程心得分享,送给刚入门学编程的小伙伴
  14. 听云SDK影响其他项目报Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/networkbench/agent
  15. 提升10%!如何将机器学习模型准确率从80%提高到90%以上
  16. wordpress非插件实现屏蔽英语、日语、俄语、韩语、阿拉伯语、泰语等外语垃圾评论!...
  17. 计算机视觉—期刊|会议名称以及出版社对应大全
  18. 华为路由器 静态路由
  19. linux c十六进制转十进制函数,用Linux/Unix命令把十六进制转换成十进制(转)
  20. IdeaVim 代码补全列表选择快捷键

热门文章

  1. SAP Spartacus home 页面的 cx-page-slot selector
  2. SAP Cloud for Customer最新版本2002 RUI如何启用adaptation模式
  3. yaas target folder generated and source folder generated
  4. how is central js retrieved from ABAP repository
  5. 观察者模式在SAP UI5主题更改功能中的应用
  6. 变量不同作用域的测试
  7. UI5 datajs.js response handling
  8. Attachment multiple read API - performance with regular expression
  9. UI上search 的drop down list是怎么实现的
  10. problem about can't trigger exit-command in CR