Kratzen mit Scrapy und Selen

Ich habe eine Scrapy-Spinne, die eine Site durchsucht, die Inhalte über Javascript auf der Seite neu lädt. Um zur nächsten Seite zu gelangen, habe ich Selen verwendet, um auf den Monatslink oben auf der Site zu klicken.

Das Problem ist, dass der Spider, obwohl sich mein Code wie erwartet durch jeden Link bewegt, nur die ersten Monatsdaten (Sept) für die Anzahl der Monate abkratzt und diese doppelten Daten zurückgibt.

Wie kann ich das umgehen?

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage