#python #web-scraping #scrapy
Вопрос:
Вот рабочий код:
import scrapy class imdb_project(scrapy.Spider): name = 'imdb' start_urls = ['https://www.imdb.com/chart/top'] def parse(self, response): for i in response.css('.titleColumn a'): movie_name = i.css('::text').get() movie_url = i.css('::attr(href)').get() dict = {'movie': movie_name} yield response.follow(movie_url, callback=self.parse_info, meta=dict) def parse_info(self, response): movie_name2 = response.meta['movie'] duration = response.css('ul.dxizHm li:nth-child(3)::text').get() genre = ', '.join(response.css('a.ipc-chip--on-baseAlt *::text').getall()) print('n') yield { 'Movie Name': movie_name2, 'Duration': duration, 'Genre': genre, } print('n')
Это показывает мне все 250 результатов, но что, если я хочу увидеть, например, только первые 3 результата?
Ответ №1:
Измените итерацию списка
for i in response.css('.titleColumn a'):
Для:
for i in response.css('.titleColumn a')[:3]: