Как извлечь данные (текст), используя красивый суп, когда они находятся в одном классе? - PullRequest
0 голосов
/ 26 июня 2019

Я работаю над личным проектом, где я собираю данные с веб-сайта.Я пытаюсь использовать красивый суп, чтобы сделать это, но я наткнулся на данные в том же классе, но с другим атрибутом.Например:

<div class="pi--secondary-price">
<span class="pi--price">$11.99 /<abbr title="Kilogram">kg</abbr></span>
<span class="pi--price">$5.44 /<abbr title="Pound">lb.</abbr></span>
</div>

Как мне получить 11,99 долл. США / кг?Сейчас я получаю $ 11,99 / кг $ 5,44 / фунт.

Я сделал x.select ('. Pi - вторичная цена'), но он возвращает обе цены.Как получить только 1 цену (11,99 долл. США / кг)?

1 Ответ

2 голосов
/ 26 июня 2019

Сначала вы можете получить тег <abbr>, а затем найти соответствующий родительский тег. Как это:

from bs4 import BeautifulSoup

html = '''
<div class="pi--secondary-price">
<span class="pi--price">$11.99 /<abbr title="Kilogram">kg</abbr></span>
<span class="pi--price">$5.44 /<abbr title="Pound">lb.</abbr></span>
</div>
'''  

soup = BeautifulSoup(html, 'html.parser')

kg = soup.find(title="Kilogram")
print(kg.parent.text)

Это дает желаемый результат $11.99 /kg. Для получения дополнительной информации см. Документацию BeautifulSoup .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...