Всегда проверяйте источник страницы из источника просмотра. Глядя на источник, похоже, что он не содержит искомого элемента. Вместо этого он динамически создается с помощью javascript.
Вы можете использовать селен для очистки таких сайтов. Но у селена есть свои оговорки. Это синхронно.
А поскольку вы используете scrapy, лучшим вариантом будет использование пакета scrapy-spla sh. Spla sh отображает javascript и возвращает полностью визуализированную html страницу, которую вы можете легко очистить с помощью селекторов xpath или css. Помните, что вам нужно запустить сервер Spla sh в контейнере docker . И используйте его как прокси-сервер для рендеринга javascript.
docker pull scrapinghub/splash
docker run -d -p 8050:8050 --memory=1.5G --restart=always scrapinghub/splash --maxrss 1500 --max-timeout 3600 --slots 10
Вот ссылка на документацию. https://splash.readthedocs.io/en/stable/
Ваш сценарий будет выглядеть примерно так. Вместо scrapy.Request
вы можете делать запросы типа
from scrapy_splash import SplashRequest
yield SplashRequest(url=url, callback=self.parse, meta={})
И тогда вам хорошо go.