IMDB scrapy alle Filmdaten abrufen

Ich arbeite an einem Klassenprojekt und versuche, alle IMDB-Filmdaten (Titel, Budgets usw.) bis 2016 abzurufen. Ich habe den Code von @ übernommehttps: //github.com/alexwhb/IMDB-spider/blob/master/tutorial/spiders/spider.p.

Mein Gedanke ist: von i in Range (1874,2016) (seit 1874 ist das früheste Jahr auf @ gezeihttp: //www.imdb.com/year), leiten Sie das Programm auf die Website des entsprechenden Jahres und greifen Sie auf die Daten dieser URL zu.

Aber das Problem ist, dass auf jeder Seite jedes Jahr nur 50 Filme angezeigt werden. Wie kann ich nach dem Crawlen der 50 Filme zur nächsten Seite übergehen? Und wie kann ich nach dem Crawlen jedes Jahres zum nächsten Jahr übergehen? Dies ist mein Code für den Parsing-URL-Teil, aber er kann nur 50 Filme für ein bestimmtes Jahr crawlen.

class tutorialSpider(scrapy.Spider):
    name = "tutorial"
    allowed_domains = ["imdb.com"]
    start_urls = ["http://www.imdb.com/search/title?year=2014,2014&title_type=feature&sort=moviemeter,asc"] 

    def parse(self, response):
            for sel in response.xpath("//*[@class='results']/tr/td[3]"):
                item = MovieItem()
                item['Title'] = sel.xpath('a/text()').extract()[0]
                item['MianPageUrl']= "http://imdb.com"+sel.xpath('a/@href').extract()[0]
                request = scrapy.Request(item['MianPageUrl'], callback=self.parseMovieDetails)
                request.meta['item'] = item
                yield request

Antworten auf die Frage(6)

Ihre Antwort auf die Frage