Ich bin neu in Scrapy und Python. Ich versuchte, die Daten von https://in.bookmyshow.com/movies wiederzuerlangen, da ich die Informationen aller Filme benötige, die ich versuchte, die Daten zu extrahieren. Aber dort ist etwas mit meinem Code falsch, ich möchte wissen, wo ich falsch gegangen bin.Daten aus mehreren Links mit scrapy
rules = (Rule(SgmlLinkExtractor(allow=('https://in\.bookmyshow\.com/movies/.*',)), callback="parse_items", follow= True),)
def parse_items(self, response):
for sel in response.xpath('//div[contains(@class, "movie-card")]'):
item = Ex1Item()
item['Moviename'] = sel.xpath('.//a[@class="__movie-name"]/text()').extract()
item['Language'] = sel.xpath('/html/body/div[1]/div[2]/div/div[1]/div[2]/section[1]/div/div[2]/div[1]/div[1]/div/div/div[2]/div[2]/ul/li/text()').extract()
item['Info'] = sel.xpath('.//div[@class="__rounded-box __genre"]/text()').extract()
item['Synopsis'] = sel.xpath('/html/body/div[1]/div[2]/div[1]/div[2]/div[4]/div[2]/div[2]/blockquote/text()').extract()
item['Release'] = sel.xpath('.//span[@class="__release-date"]/text()').extract()
yield item
Der Code wiederholt mehrmals und auch als Endlosschleife. Ich bin in der Lage, die Daten zu extrahieren, aber nicht in der richtigen Reihenfolge. Wie auch immer, danke, dass du meine Frage durchgehst – Shraddha
Du verwendest Regeln und eine Spinne vom Typ CrawlSpider. Diese Art von Spider beginnt bei start_urls und folgt allen Links, die zu deiner Regel passen. Die Spinne in meinem Beispiel wird nicht in einer Endlosschleife stecken bleiben, obwohl es einige Zeit dauert, da sie> 1000 Filmseiten durchsucht. Ist das das Verhalten, das du wirklich willst? Wenn nicht, beschreibe bitte ein bisschen genauer, was du willst und ich kann dir sagen, welcher andere Spidertyp besser passt. – dron22
Ich möchte Informationen von jedem Film von seiner Seite nehmen. Es ist eher so, als würde man den Filmnamen von der Hauptseite und dessen Informationen von einer anderen Seite holen, und es muss für jeden auf der Hauptseite vorhandenen Film gemacht werden. Ich glaube nicht, dass ich dafür CrawlSpider benutzen muss. Danke für die Hilfe. – Shraddha