Scrapy 刮皮不';t将开始URL作为项目返回

Scrapy 刮皮不';t将开始URL作为项目返回,scrapy,Scrapy,使用下面的代码,我可以让Scrapy抓取站点的页面,解析这些页面,并将每个页面解析的结果作为一个项目返回,以便在管道中进行处理 我的问题是我无法解决如何处理start_url页面。start_url永远不会传递给parse_item函数 我错过了什么 class GenericSpider(CrawlSpider): name = "Generic" allowed_domains = [] start_urls = [] ignored_extensions = [

使用下面的代码,我可以让Scrapy抓取站点的页面,解析这些页面,并将每个页面解析的结果作为一个项目返回,以便在管道中进行处理

我的问题是我无法解决如何处理start_url页面。start_url永远不会传递给parse_item函数

我错过了什么

class GenericSpider(CrawlSpider):
    name = "Generic"
    allowed_domains = []
    start_urls = []

ignored_extensions = [
    # images
    'mng', 'pct', 'bmp', 'gif', 'jpg', 'jpeg', 'png', 'pst', 'psp', 'tif',
    'tiff', 'ai', 'drw', 'dxf', 'eps', 'ps', 'svg',

    # audio
    'mp3', 'wma', 'ogg', 'wav', 'ra', 'aac', 'mid', 'au', 'aiff',

    # office suites
    'xls', 'xlsx', 'ppt', 'pptx', 'doc', 'docx', 'odt', 'ods', 'odg', 'odp',

    # other
    'css', 'exe', 'bin', 'rss', 'zip', 'rar',
]


rules = [
    Rule(LinkExtractor(deny_extensions=ignored_extensions), follow=True, callback='parse_item')
]

def __init__(self, start_url, source, *args, **kwargs):
    super(GenericSpider, self).__init__(*args, **kwargs) 

    #set common settings
    Bootstrap.init(self, kwargs)

    self.source = source
    self.start_urls = [start_url]
    self.allowed_domains = [urlparse.urlparse(start_url).hostname]

def parse_item(self, response):
    process response and return item ....
您将需要定义以下内容:

class GenericSpider(CrawlSpider):
    name = "Generic"
    allowed_domains = []
    start_urls = []
    ...
    def parse_item(self, response):
        process response and return item ....

    parse_start_url = parse_item