python 定时执行 爬虫 模块_浅析python实现scrapy定时执行爬虫
项目需要程序能够放在超算中心定时运行,于是针对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定时执行爬虫相关推荐
- python中main的作用_浅析python 中__name__ = '__main__' 的作用
很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...
- python测试代码与模块_测量Python代码运行时间
Python 社区有句俗语: "python自己带着电池" ,别自己写计时框架. Python 2.3 具备一个叫做 timeit 的完美计时工具可以测量python代码的运行时间 ...
- python字典嵌套字典构造_浅析python 字典嵌套
为什么需要嵌套? 有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套 .你可以在列表中嵌套字典.在字典中嵌套列表甚至在字典中嵌套字典. 字典列表 例如:字典alien_0包含 ...
- python 定时执行 爬虫 模块_【Python】定时执行网站爬虫
今天我们额讨论如何使用Python,SQLite数据库与crontab工具将爬虫程序部署到服务器上并实现定时爬取存储 编写爬虫代码 编写一个爬虫程序,使用requests与beautifulsoup4 ...
- python如何导入自定义模块_【python】导入自定义模块
一.直接import 1.当执行文件与要导入的py文件在同一目录下时 假设要在wangyi.py中导入weibo.py文件 import weibo 2.当执行文件与要导入的py文件所在文件夹在同一目 ...
- python 命令行解析模块_【Python模块】命令行解析--argparse
python命令行解析 前言 当你还在使用 if len(sys.argv) > 1: 这样的方式判断选项和参数的时候,是否已意识到已经落伍了. 我在bash中用过getopt getopts, ...
- python getattr调用自己模块_在Python中通过getattr获取对象引用的方法
getattr函数 (1)使用 getattr 函数,可以得到一个直到运行时才知道名称的函数的引用. >>> li = ["Larry", "Curly ...
- python中的utils模块_使用Python的package机制如何简化utils包设计详解
package 机制 package是模块的集合,每一个Package的根目录下面都应当有一个__init__.py 文件.当解释器发现目录下有这个文件时,他就会认为这是一个Package,而不是一个 ...
- python闭包两种写法_浅析Python闭包
一.什么是闭包python 在介绍闭包概念前,咱们先来看一段简短的代码数组 def sum_calc(*args):defwrapper(): sum=0for n inargs: sum+=n;re ...
最新文章
- 电力电子技术第五版王兆安pdf_电力电子技术笔记(考试必备)
- 2019诺贝尔生理学\医学奖率先颁出!英美3学者加冕,揭秘血与氧关系,抗击肿瘤和癌症...
- 天润融通java面试_【天润融通面试|面试题】-看准网
- LeetCode Minimum Depth of Binary Tree
- 计算机课程可在平板上做吗,老师做直播,孩子上网课,掌控线上学习就靠这个平板电脑了...
- Android Studio and Gradle are using different locations for the JDK
- 用R3写卡成PRL302,解决新电信卡PRL301只能1X不能上3G问题
- azure java_使用 Java 的 Azure 存储示例 | Microsoft Docs
- 结构体Sqlist L与Sqlist L的区别
- SPSS软件安装与常见入门问题
- 推荐5个4K视频下载网站 (百万优质资源)
- javascript/js替换内容
- 编程心得分享,送给刚入门学编程的小伙伴
- 听云SDK影响其他项目报Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/networkbench/agent
- 提升10%!如何将机器学习模型准确率从80%提高到90%以上
- wordpress非插件实现屏蔽英语、日语、俄语、韩语、阿拉伯语、泰语等外语垃圾评论!...
- 计算机视觉—期刊|会议名称以及出版社对应大全
- 华为路由器 静态路由
- linux c十六进制转十进制函数,用Linux/Unix命令把十六进制转换成十进制(转)
- IdeaVim 代码补全列表选择快捷键
热门文章
- SAP Spartacus home 页面的 cx-page-slot selector
- SAP Cloud for Customer最新版本2002 RUI如何启用adaptation模式
- yaas target folder generated and source folder generated
- how is central js retrieved from ABAP repository
- 观察者模式在SAP UI5主题更改功能中的应用
- 变量不同作用域的测试
- UI5 datajs.js response handling
- Attachment multiple read API - performance with regular expression
- UI上search 的drop down list是怎么实现的
- problem about can't trigger exit-command in CR