Python3.6-Scrapy:在抓取内容之前,使用spider导航两次

Python3.6-Scrapy:在抓取内容之前,使用spider导航两次,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我是Scrapy的新手,我已经构建了一个spider,它首先在start_url中提取一个url列表,在每个url中导航并抓取内容 但是,我需要稍微改变一下我的新spider的逻辑。爬行器必须提取start_url中的url列表,必须访问每个url,并且在开始抓取内容之前,必须从这里提取并访问另一个url: import scrapy class KickerbotSpiderStats(scrapy.Spider): name = 'matches-stats2' allow

我是Scrapy的新手,我已经构建了一个spider,它首先在start_url中提取一个url列表,在每个url中导航并抓取内容

但是,我需要稍微改变一下我的新spider的逻辑。爬行器必须提取start_url中的url列表,必须访问每个url,并且在开始抓取内容之前,必须从这里提取并访问另一个url:

import scrapy

class KickerbotSpiderStats(scrapy.Spider):
    name = 'matches-stats2'
    allowed_domains = ['www.kicker.de']
    start_urls = ['http://www.kicker.de/news/fussball/wm/spiele/weltmeisterschaft/2014/-1/0/spieltag.html']

    # Step 1 // Go to Site with all matches and extract URL of each of them
    def parse(self, response):
        for match in response.xpath('//*[contains(concat( " ", @class, " " ), concat( " ", "aligncenter", " " ))]//a/@href').extract():
             yield scrapy.Request("http://www.kicker.de" + match, callback=self.parse_matchpage)

     # Step 2 // From each match URL, get URL for match stats 
    def parse_matchpage(self, response):
        for statsPage in response.xpath('//*[contains(concat( " ", @class, " " ), concat( " ", "nav4tab-sel", " " ))]//a/@href').extract():
             yield scrapy.Request("http://www.kicker.de" + statsPage, callback=self.parse_statspage)

    # Step 3 // Parse Stats from match 
    def parse_statspage(self, response):


        yield {
                'matchId' : (response.url).split("/")[-2],
                'local' : response.xpath('//*[(@id = "SpielpaarungLiveTitleRow")]//a/text()').extract_first().strip()
            }

我在我的工作spider中添加了这个新步骤,但是我没有得到任何数据。Spider像以前一样爬行(200响应),但只是第一步,没有在stats页面中导航。我做错了什么

第二个xpath返回空列表,请尝试以下操作:
/*[contains(concat(“,@class,”),concat(“,“nav4tab sel”,”)]/@href
,而且第2步的url与第1步相同?尝试更新您的帖子,使其更加清晰,否则,必须检查元素并在broser控制台中应用xpath,以找出要解析的链接。您应该描述提及可见文本,以便更容易找到您想要实现的目标。谢谢