“设置爬虫程序”和“从爬虫程序”的功能是什么爬网.py“在刮胡子?

2024-10-01 13:36:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我不明白这些功能。如果我继承SpiderCrawlSpider,是否应该重写这些函数。如果没有,那为什么?在

@classmethod
def from_crawler(cls, crawler, *args, **kwargs):
    spider = super(CrawlSpider, cls).from_crawler(crawler, *args, **kwargs)
    spider._follow_links = crawler.settings.getbool(
                                   'CRAWLSPIDER_FOLLOW_LINKS', True)
    return spider

def set_crawler(self, crawler):
    super(CrawlSpider, self).set_crawler(crawler)
    self._follow_links = crawler.settings.getbool(
                                 'CRAWLSPIDER_FOLLOW_LINKS', True)

Tags: fromselfsettingsdefargslinkskwargsspider
1条回答
网友
1楼 · 发布于 2024-10-01 13:36:29

通常您不需要重写这些函数,但这取决于您想做什么。在

from_crawler方法(带有@classmethod修饰符)是一个factory method,Scrapy将使用它来实例化添加它的对象(spider、扩展、中间件等)。在

它通常用于获取对crawler对象的引用(该对象包含对settingsstats等对象的引用),然后将其作为参数传递给正在创建的对象或为其设置属性。在

在您粘贴的特定示例中,它用于从CRAWLSPIDER_FOLLOW_LINKS设置中读取值,并将其设置为spider中的_follow_links属性。在

您可以看到another simple example of usage of the from_crawler method in this extension,它使用crawler对象获取设置的值并将其作为参数传递给扩展,并将某些{a3}连接到某些方法。在

set_crawler方法在最新的垃圾版本中已被弃用,应该避免使用。在

更多信息:

相关问题 更多 >