Scrapy LinkExtractor с элементом SVG в качестве кнопки Далее - PullRequest
4 голосов
/ 30 апреля 2019

Я использую 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")]'))

Есть ли что-то, что мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...