Raspado con Scrapy y Selenio

Tengo una araña de chatarra que rastrea un sitio que recarga contenido a través de javascript en la página. Para pasar a la siguiente página para raspar, he estado usando Selenium para hacer clic en el enlace del mes en la parte superior del sitio.

El problema es que, aunque mi código se mueve a través de cada enlace como se esperaba, la araña simplemente raspa los datos del primer mes (septiembre) para la cantidad de meses y devuelve estos datos duplicados.

¿Cómo puedo evitar esto?

from selenium import webdriver

class GigsInScotlandMain(InitSpider):
        name = 'gigsinscotlandmain'
        allowed_domains = ["gigsinscotland.com"]
        start_urls = ["http://www.gigsinscotland.com"]


    def __init__(self):
        InitSpider.__init__(self)
        self.br = webdriver.Firefox()

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        self.br.get(response.url)
        time.sleep(2.5)
        # Get the string for each month on the page.
        months = hxs.select("//ul[@id='gigsMonths']/li/a/text()").extract()

        for month in months:
            link = self.br.find_element_by_link_text(month)
            link.click()
            time.sleep(5)

            # Get all the divs containing info to be scraped.
            listitems = hxs.select("//div[@class='listItem']")
            for listitem in listitems:
                item = GigsInScotlandMainItem()
                item['artist'] = listitem.select("div[contains(@class, 'artistBlock')]/div[@class='artistdiv']/span[@class='artistname']/a/text()").extract()
                #
                # Get other data ...
                #
                yield item

Respuestas a la pregunta(1)

Su respuesta a la pregunta