赞
踩
前几天遇到一个很有意思的业务需求,调用一个爬虫,而这个爬虫每天只能调用一次。
在晚上找了很久,也有很多办法,但是对于一个新手来说,哪些都有不怎么看的懂。今天我就分享一个能看得懂的。
写一个相当于日志文件的文件,什么文件都行,我这里用的是json文件。
- bool= readLog() # readLog() 是读日志的函数,返回一个bool类型
- if not bool:
- print('Main执行了')
-
- #Main 是我封装的爬虫函数
- Main() # 如果大于24小时,重新爬取数据
-
- #写日志文件 一天只能执行一次
- writeLog() # writeLog() 是写日志的函数
- break
- def readLog():
-
- with open('log/ExeThatDay.json', 'r+', encoding='utf-8') as f:
-
- # f.readlines() 会返回一个数组
- readText=f.readlines()
-
- # datetime.datetime.now() 放回的是今天的时间
- # .strftime('%Y-%m-%d') 将今天的日期格式转化字符串格式
- # readText[0] 是读取的第一个
- # 判断是否相等
- bool = readText[0] == datetime.datetime.now().strftime('%Y-%m-%d')
-
- print('readLog 函数')
-
- return bool
- #写入日志
- def writeLog():
- # 以 w+ 的方式 进行写文件 (w 如果文件不存在则创建,如果存在则覆盖原数据)
- with open('log/ExeThatDay.json', 'w+', encoding='utf-8') as f:
-
- f.write(str(datetime.datetime.now().strftime('%Y-%m-%d')))
-
- print('writeLog 函数')
这样就可以一天只执行一次了,不过还是需要人为的运行。有点小瑕疵吧。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。