gpt4 book ai didi

python - 如何在 Scrapy 中 'pause' 蜘蛛?

转载 作者:太空狗 更新时间:2023-10-30 01:05:32 25 4
gpt4 key购买 nike

我正在使用 Tor(通过 Privoxy)进行抓取项目,并想编写一个 Scrapy 扩展(参见 https://doc.scrapy.org/en/latest/topics/extensions.html),只要达到一定数量的项目,它就会请求一个新身份(参见 https://stem.torproject.org/faq.html#how-do-i-request-a-new-identity-from-tor)被抓取掉了。

但是,身份的更改需要一些时间(几秒钟),在此期间我希望不会有任何内容被抓取。因此,我想让扩展“暂停”蜘蛛,直到 IP 更改完成。

这可能吗? (我已经阅读了一些关于使用 Cntrl+C 并指定 JOBDIR 的解决方案,但这似乎有点过激,因为我只想暂停蜘蛛,而不是停止整个引擎)。

最佳答案

爬虫引擎有 pauseunpause 方法,所以你可以尝试这样的事情:

class SomeExtension(object):

@classmethod
def from_crawler(cls, crawler)
o = cls(...)
o.crawler = crawler
return o

def change_tor(self):
self.crawler.engine.pause()
# some python code implements changing logic
self.crawler.engine.unpause()

关于python - 如何在 Scrapy 中 'pause' 蜘蛛?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43920440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com