title: What is the function of "set_crawler" and "from_crawler" in 'crawl.py' in Scrapy?
body: <p>I can't understand those functions. If I inherit the <code>Spider</code> or <code>CrawlSpider</code>, should I override those functions. If not, then why?</p>
  
  <pre><code>@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)
  </code></pre>