discord.py BS4 получить информацию о копировании в буфер обмена из html

#html #beautifulsoup #discord.py

#HTML #beautifulsoup #discord.py

Вопрос:

У меня есть следующий HTML-код:

 <button class="btn btn-raised btn-success" id="button-copy-number" onclick='copyToClipboard("123456")' type="button">Copy number to clipboard</button>
  

Как я могу получить номер с кнопки?

Ответ №1:

Вы можете использовать этот пример для извлечения числа из onclick= атрибута:

 from bs4 import BeautifulSoup


html_doc = '''<button class="btn btn-raised btn-success" id="button-copy-number" onclick='copyToClipboard("123456")' type="button">Copy number to clipboard</button>'''
soup = BeautifulSoup(html_doc, 'html.parser')

# 1. locate the button
btn = soup.select_one('#button-copy-number')

# 2. get the onclick= attribute
txt = btn['onclick']

# 3. get the number
n = int(txt.split('"')[-2])

print(n)
  

С принтами:

 123456
  

Или: с помощью re модуля:

 import re
from bs4 import BeautifulSoup


html_doc = '''<button class="btn btn-raised btn-success" id="button-copy-number" onclick='copyToClipboard("123456")' type="button">Copy number to clipboard</button>'''
soup = BeautifulSoup(html_doc, 'html.parser')

btn = soup.select_one('#button-copy-number')
txt = btn['onclick']

n = int(re.search(r'(d )', txt).group(1))
print(n)