这期内容当中小编将会给大家带来有关怎么在python中利用Scrapy实现一个定时爬虫功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
1、Scrapy介绍
Scrapy是python的爬虫框架,用于抓取web站点并从页面中提取结构化的数据。任何人都可以根据需求方便的修改。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()
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实现一个定时爬虫功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。