Scrapy Scraping теговые объекты и агрегирующие значения - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь научиться делать соскоб в Интернете, и скучная работа кажется хорошим началом. Я понял, как очистить основную текстовую информацию от тегов, но теперь я хочу очистить информацию от самого тега. Ниже приведен пример. Я использую этот URL: https://www.net -a-porter.com / ca / ​​en / product / 1100692 / Хлоя / Рой-день-маленькая кожа-и-замша-сумка

и я хочу наскрести название и цену сумки. при просмотре структуры DOM есть 2 тега:

<h2 class="product-name">
<nap-price class="product-price" price:{...}>

Я хочу очистить текстовое значение тега h2 и объекта цены внутри тега цены ворса

и создайте объект, подобный этому:

{
name: "from <h2> tag"
price: "price object from <nap-price> tag"
}

В настоящее время я могу взять имя из тега h2, и я могу получить весь тег цены ворса, но как мне настроить таргетинг только на объект цены? а затем объединить их в один объект?

1 Ответ

2 голосов
/ 27 мая 2019

Вы можете использовать ::attr(), передать имя атрибута, значение которого вы хотите. Затем проанализируйте строку JSON для объекта Python:

import json

price = response.css('nap-price::attr(price)').get()
obj = json.loads(price)

print(obj)
# {"currency":"USD","divisor":100,"amount":185000}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...