Я использую CrawlSpider, который рекурсивно следует по ссылкам, вызывающим следующую страницу, используя извлечение ссылок, например:
rules = (Rule(LinkExtractor(
allow=(),\
restrict_xpaths=('//a[contains(.,"anextpage")]')),\
callback='parse_method',\
follow=True),
)
Я применил эту стратегию для рекурсивного сканирования различных веб-сайтов, и поскольку текст был вhtml-тег, например <a href="somelink">sometext</a>
, все работало нормально.
Я сейчас пытаюсь очистить веб-сайт с
<div class="bui-pagination__item bui-pagination__next-arrow">
<a class="pagenext" href="/url.html" aria-label="Pagina successiva">
<svg class="bk-icon -iconset-navarrow_right bui-pagination__icon" height="18" role="presentation" width="18" viewBox="0 0 128 128">
<path d="M54.3 96a4 4 0 0 1-2.8-6.8L76.7 64 51.5 38.8a4 4 0 0 1 5.7-5.6L88 64 57.2 94.8a4 4 0 0 1-2.9 1.2z"></path>
</svg>
</a>
</div>
как «следующий»кнопка вместо простого текста, и мое правило LinkExtractor, кажется, больше не применяется, и паук останавливается после первой страницы.
Я попытался найти элемент svg, но, похоже, это не сработалоизвлечение:
restrict_xpaths=('//a[contains(.,name()=svg) and contains(@class,"nextpageclass")]'))
Есть ли что-то, что мне не хватает?