Я считаю, что проблема связана с
nextpg = response.css('div.desc > a::attr(href)').extract_first()
На этой странице https://www.imdb.com/search/title?year=2017,2018&title_type=feature&sort=moviemeter,asc
код для ссылки на следующую страницу:
<div class="desc">
<span class="lister-current-first-item">1</span> to
<span class="lister-current-last-item">50</span> of 24,842 titles
<span class="ghost">|</span>
<a href="?year=2017,2018&title_type=feature&sort=moviemeter,asc&page=2&ref_=adv_nxt" class="lister-page-next next-page" ref-marker="adv_nxt">Next »</a>
</div>
Ваш кодзахватывает ссылку с текстом привязки. Далее >>
, это
https://www.imdb.com/search/title?year=2017,2018&title_type=feature&sort=moviemeter,asc&page=2&ref_=adv_nxt
Вы переходите на эту страницу и очищаете следующие 50 фильмов
однако HTML в div с классом desc содержит ДВА ссылки.Не такой, как первая страница.
Первая ссылка - это предыдущая ссылка, а не следующая.
<div class="desc">
<span class="lister-current-first-item">51</span> to
<span class="lister-current-last-item">100</span> of 24,842 titles
<span class="ghost">|</span> <a href="?year=2017,2018&title_type=feature&sort=moviemeter,asc&page=1&ref_=adv_prv" class="lister-page-prev prev-page" ref-marker="adv_nxt">« Previous</a>
<span class="ghost">|</span> <a href="?year=2017,2018&title_type=feature&sort=moviemeter,asc&page=3&ref_=adv_nxt" class="lister-page-next next-page" ref-marker="adv_nxt">Next »</a>
</div>
Что бы я сделал, это установил счетчик на 0.
Увеличение при успешной очистке.
Если счетчик больше 0, тогда захватите вторую ссылкуи перейдите по этой ссылке и обработайте результаты на этой странице
Если счетчик не больше 0, тогда возьмите первую ссылку и перейдите по ней и очистите результаты на этой странице