Scrapy: невозможно извлечь поле атрибута с помощью селектора css - PullRequest
0 голосов
/ 29 мая 2020

Вот код HTML

<!DOCTYPE html>
<html lang="en">
<div class="container" id="content-area">
    <div class="flex-row flex-baseline flex-space-between" data-id="1826" id="info">
      <h1 class="no-margin">XYZ</h1>
        <div class="new-stack" id="sublists">Added</div>
    </div>
</div>

Я хочу вытащить атрибут data-id внутри тега div. Вот что я пытаюсь использовать CSS Selector

>>> response.css("#content-area div")[0].css("::attr[data-id]").get()

И я получил ошибку ниже

cssselect.parser.SelectorSyntaxError: Got pseudo-element ::attr not at the end of a selector

Вот как я решил это, объединив CSS и XPATH Selectors.

>>> response.css("#content-area div")[0].xpath("@data-id").get()
'1826'

Есть ли какое-то решение, которое может сделать это, используя только CSS Selector?

1 Ответ

1 голос
/ 29 мая 2020

Вам нужно использовать () вместо []

>>> response.css("#content-area div")[0].css("::attr(data-id)").get()
...