Scrapy получить тег благодаря тегу прецедента - PullRequest
0 голосов
/ 04 ноября 2018

привет У меня есть этот HTML-скрипт:

<div class="sc-grid-col-12">
    <div class="cldt-categorized-data cldt-data-section sc-pull-right">
        <dl>
            <dt>Nr. of Doors</dt>
            <dd>5</dd>
            <dt>Nr.of seat</dt>
            <dd>5</dd>
        </dl>
    </div>

И я хотел бы получить значение dd (5) на основе значения dt Nr. Дверей.

это код, который я использую (что неверно):

    start_urls = ["https://www.autoscout24.com/offers/peugeot-107-active-1hand-led-scheckheftgepflegt-tuev-au-neu-gasoline-silver-2c985ebc-5a39-4d12-bd50-605f7e9b4b58?cldtidx=13"]
    def parse(self, response):
        for quote in response.css('div.sc-grid-col-12'):
            yield {
                'portes': quote.xpath("//div[@class='cldt-categorized-data cldt-data-section sc-pull-right']//dl[dt='Nr. of Doors']//following-sibling::dd").extract(),
                  }

Под выводом, который я получаю:

{'portes': ['<dd>\n<a href="/lst/peugeot">Peugeot</a>\n</dd>', '<dd>\n<a href="/lst/peugeot/107">107</a>\n</dd>', '<dd>\nSilver\n</dd>', '<dd>\nMetallic\n</dd>', '<dd>\nCloth, Grey\n</dd>', '<dd>\nCompact\n</dd>', '<dd>\n3\n</dd>', '<dd>\n4\n</dd>', '<dd>\n3003/ACR\n</dd>']}

этот результат многократно повторяется !!

1 Ответ

0 голосов
/ 05 ноября 2018
def parse(self, response):
        for quote in response.css('div.sc-grid-col-12'):
            yield {
                'portes' = unidecode.unidecode(
        re.sub(r'\s+',' ',quote.css("div.cldt-categorized-data.cldt-data-section.sc-pull-right dl[dt='Nr. of Doors'] + dd::text").extract_first()))
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...