Задать вопрос
@Valentine5

Как получить нужное содержимое Xpath, если по родителю получаю список Element такой-то at?

Пишу парсер для получения названий книг, картинок и стоимости с этого учебного сайта по скрапингу:
https://books.toscrape.com/catalogue/page-1.html

При вот таком запросе Xpath:

all_product_information = tree.xpath('//article[@class="product_pod"]')

Получаю выдачу:

[<Element article at 0x7008b358d240>, <Element article at 0x7008b3394880>, <Element article at 0x7008b34fab00>, <Element article at 0x7008b34ac380>, <Element article at 0x7008b324da00>, <Element article at 0x7008b319bc80>, <Element article at 0x7008b319be40>, <Element article at 0x7008b319b100>, <Element article at 0x7008b31a6680>, <Element article at 0x7008b324dac0>, <Element article at 0x7008b31a67c0>, <Element article at 0x7008b31a6480>, <Element article at 0x7008b31a6400>, <Element article at 0x7008b31a6640>, <Element article at 0x7008b31a6140>, <Element article at 0x7008b31a6c40>, <Element article at 0x7008b31a6700>, <Element article at 0x7008b31a6040>, <Element article at 0x7008b31a6380>, <Element article at 0x7008b31a68c0>]

Как раскрыть их дальше? Ничего не получается. Перебираю циклом all_product_information, но там тоже elements просто, а содержимого нет. Получается обращаться по индексам [0], [1], но, опять таки, названий книг, стоимости не получаю.
  • Вопрос задан
  • 109 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Eduson
    Python-разработчик
    9 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
Продолжать парсить те элементы что вам нужны.
Например, для названий:
for el in all_product_information:
    print(el.xpath('h3/a/text()')[0])

A Light in the ...
Tipping the Velvet
Soumission

Или как-то так:
product_name = tree.xpath('//article[@class="product_pod"]/h3/a/text()')
product_price = tree.xpath('//div[@class="product_price"]/p/text()[1]')
product_price = [i for i in product_price if i != '\n    ']

z = zip(product_name, product_price)
for i in z:
    print(*i)

A Light in the ... £51.77
Tipping the Velvet £53.74
Soumission £50.10
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы