pyspider的age参数设定
关于age的两点问题:
@every(minutes=24 * 60)
def on_start(self):
self.crawl('http://www.example.org/', callback=self.index_page)
@config(age=10 * 24 * 60 * 60)
def index_page(self):
...
上面是官方文档给出的一个例子,文档中说因为every设定的值比age小,于是在age范围内,抓取请求会被忽略。我仍然不是很确定,这里所指的忽略,是“直接忽略抓取的请求,完全不进行此次抓取任务”,还是“先将目标页面抓取下来,response传给index_page,然后因为设定的age时间未到,忽略这个response的后续处理”
@every(minutes=12 * 60)
def on_start(self):
url = 'https://www.oschina.net/action/ajax/get_more_recommend_blog?classification=0&p=1'
self.crawl(url, callback=self.index_page, retries=10, age=60*60, headers=self.headers)
@config(age=10 * 24 * 60 * 60)
def index_page(self, response):
for each in response.doc('a[href^="http"]').items():
self.crawl(each.attr.href, callback=self.detail_page)
如果我在on_start方法中的crawl中设定了一个age值,然后index_page前面也有一个age值设定,那么会以哪个为准呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
「直接忽略抓取的请求,完全不进行此次抓取任务」
self.crawl 直接设置的所有参数,优先级大于 @config 设置的