Вот мой код. Мой метод parse_item не вызывается.
from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from scrapy.selector import HtmlXPathSelector class SjsuSpider(CrawlSpider): name = 'sjsu' allowed_domains = ['sjsu.edu'] start_urls = ['http://cs.sjsu.edu/'] # allow=() is used to match all links rules = [Rule(SgmlLinkExtractor(allow=()), follow=True), Rule(SgmlLinkExtractor(allow=()), callback='parse_item')] def parse_item(self, response): print "some message" open("sjsupages", 'a').write(response.body)
Ваш разрешенный домен должен быть 'cs.sjsu.edu'.
'cs.sjsu.edu'
Scrapy не разрешает субдомены разрешенного домена.
Кроме того, ваши правила могут быть записаны как:
rules = [Rule(SgmlLinkExtractor(), follow=True, callback='parse_item')]