CSS селекторы для Scrapy Web Scraping - PullRequest
0 голосов
/ 07 июня 2018

В настоящее время я пытаюсь очистить все торговые центры, перечисленные на сайте

https://web.archive.org/web/20151112172204/http://www.simon.com/mall

, используя Python и Scrapy.Я не могу понять, как извлечь текст "Anchorage 5th Avenue Mall".

<div class="st-country-padding">
    <h4><a class="no-underline" href="/web/20151112172204/http://www.simon.com/search/alaska%2b(ak)" title="View Malls In Alaska">Alaska</a></h4>
        <div>
            <a href="/web/20151112172204/http://www.simon.com/search/anchorage,+ak" title="Malls in Anchorage, AK">Anchorage</a>:
                <a href="http://www.simon.com/mall/anchorage-5th-avenue-mall" title="View Anchorage 5th Avenue Mall Website">Anchorage 5th Avenue Mall</a>
        </div>
</div>

Я пробовал несколько попыток в разных сетях, включая

response.css("a::attr(title)").extract()

Но не дает мне то, что я ищу.

Обратите внимание, что Анкоридж - это просто название первого торгового центра, поэтому я не могу назвать это напрямую, потому что существует около 200 различных торговых центров

1 Ответ

0 голосов
/ 07 июня 2018

::attr(title) дает значение атрибута title.Вам нужен текст, поэтому вам нужно использовать ::text.

Кроме того, похоже, нет хорошего способа определить нужный элемент a, так как он не имеетвсе, что отличает его от других, поэтому немного пути необходимо.Дайте мне знать, если это работает для вас:

response.css(".st-country-padding > div > a:last-of-type::text").extract()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...