title: How do you pass extra parameters/values along with the start_url for use in CrawSpider?
body: <p>So I was looking at this question: <a href="https://stackoverflow.com/questions/23696934/pass-extra-values-along-with-urls-to-scrapy-spider">Pass extra values along with urls to scrapy spider</a></p>
  
  <p>Which solved part of my question. I essentially had a long array such as:</p>
  
  <p>(ID, country, url) ... </p>
  
  <p>Using start_requests, I was successfully able to pass along the ID, and country to save as items along with the other items I was parsing.</p>
  
  <pre><code>mapping = [(001, USA, url1), etc. etc.]
  def start_requests(self):
          for url, ID, country in self.mapping:
              yield Request(url, callback=self.parse_items, meta={'country': country, 'ID': ID})
  </code></pre>
  
  <p>However, my code does not work when I use Crawlspider. It skips the rules, and doesn't parse further than the first page. </p>
  
  <p>rules = (Rule(LxmlLinkExtractor(restrict_xpaths='//a[@name="&amp;lid=pagination-next"]')
      , callback="parse_items", follow= True),
      )</p>
  
  <pre><code>def parse_start_url(self, response):
      return self.parse_items(response)
  
  def parse_items(self, response):
      country = response.meta['country']
      id = response.meta['id']
  
      items = []
      item['country'] = country
      item['id'] = id
      item['item1'] = response.xpath(...).extract()
      item['item2'] = response.xpath(...).extract()
  
  ...
  ...
  </code></pre>
  
  <p>My question is how you can keep the additional ID's of my initial mapping tuple AND follow the Crawlspider rules to crawl through those websites? It scrapes the FIRST page no problem, but fails to crawl. </p>
  
  <p>I should also say that it crawls no problem WITHOUT the start_requests, and just with the start_urls, but of course I can't for the life of me figure out how to label 'country' and 'id' associated with those urls while scraping. </p>