BeautifulSoup получить определенное значение - PullRequest
0 голосов
/ 27 августа 2018

Я использую очень простую вещь для получения необходимой информации:

a = soup.find_all(class_ = "pull-right hidden-phone")
print(a)
print(a[0])

И вывод:

[<span class="pull-right hidden-phone"><span data-c="190000000" data-time="1535345254000">1.9 BTC</span></span>, <span class="pull-right hidden-phone"><span data-c="4890548" data-time="1535345254000">0.04890548 BTC</span></span>]
<span class="pull-right hidden-phone"><span data-c="190000000" data-time="1535345254000">1.9 BTC</span></span>

Я хочу получить 1,9 BTC или 190000000, но не знаю как. Я пробовал print(a[0]["data-time"]), и это не работает, он говорит

return self.attrs [key] KeyError: 'data-time'

Однако этот print(a[0]["class"]) работает и в результате выдает ['pull-right', 'hidden-phone'].

Так как я могу получить 1,9 BTC или 190000000?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Вы должны попробовать это, пусть это поможет

from bs4 import BeautifulSoup
text = """
<span class="pull-right hidden-phone"><span data-c="190000000" data-time="1535345254000">1.9 BTC</span></span>, 
<span class="pull-right hidden-phone"><span data-c="4890548" data-time="1535345254000">0.04890548 BTC</span></span>
"""

soup = BeautifulSoup(text, 'html.parser')
for tag in soup.find_all('span', attrs={'class': 'pull-right hidden-phone'}):
    span_tag = tag.span
    print('Attribute Value:', span_tag.get('data-c'), 'Date-time:', span_tag.get('data-time'), 'Tag Text:', span_tag.get_text())


# Output as: 
# Attribute Value: 190000000 Date-time: 1535345254000 Tag Text: 1.9 BTC
# Attribute Value: 4890548 Date-time: 1535345254000 Tag Text: 0.04890548 BTC
0 голосов
/ 27 августа 2018

Используйте print(a.find("span").span["data-time"]) или print(a.span.span["data-time"])

Ex:

from bs4 import BeautifulSoup
s = """<span class="pull-right hidden-phone"><span data-c="190000000" data-time="1535345254000">1.9 BTC</span></span>"""
a = BeautifulSoup(s, "html.parser")

print(a.find("span").span["data-time"])
print(a.span.span["data-c"])
print(a.span.span.text)

Выход:

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