При парсинге на python вместо текста вылезают квадратные скобки []
Пытался сделать парсинг одного сайта, сделал всё как надо, но в итоге при выводе командой print() вместо ожидаемого результата, вылазуют квадратаные скобки [].
import requests
from bs4 import BeautifulSoup as b
URL = 'https://promotion.ru/{ссылку полностью показать не могу, там личные данные}'
r = requests.get (URL)
soup = b(r.text, 'html.parser')
balance = soup.find_all('rowshttps://promotion.ru/{ссылку полностью показать не могу}', class_='balance_from_previous_period')
print (balance)
К командной строке ответ : []
Ответы (1 шт):
⛔ Вероятно, этот ответ создан с использованием ChatGPT.
? Корректность ответа не проверялась и находится под вопросом.
⚡ По сути ответ состоит из воды, полезны только первые полтора абзаца.
Квадратные скобки, которые вы получаете при печати, говорят о том, что balance является пустым списком. Возможно, класс, который вы ищете (balance_from_previous_period), не существует на странице, или он изменен и поэтому ваш запрос не может обнаружить его.
Чтобы проверить это, попробуйте распечатать HTML-разметку вашей страницы, используя следующий код, чтобы увидеть, есть ли там элементы с классом balance_from_previous_period:
import requests
from bs4 import BeautifulSoup as b
URL = 'https://promotion.ru/{ссылку полностью показать не могу, там личные данные}'
r = requests.get (URL)
soup = b(r.text, 'html.parser')
# распечатываем HTML-разметку страницы
print(soup.prettify())
# находим элементы с классом "balance_from_previous_period"
balance = soup.find_all(class_='balance_from_previous_period')
print(balance)
Если же вы уверены, что balance_from_previous_period существует на странице, проверьте, что вы правильно скопировали и вставили ссылку. Возможно, вам необходимо авторизоваться на странице, чтобы получить доступ к данным, которые вы хотите спарсить. Также убедитесь, что вы используете правильный метод для нахождения элемента и правильный класс в soup.find_all().
В любом случае, для нахождения элемента, вам необходимо искать в соответствии с вашим HTML-кодом. Если вы не можете найти нужный элемент при помощи soup.find_all(), можно попробовать использовать более точный метод soup.find(), чтобы найти конкретный элемент. Например:
balance = soup.find('div', {"class": "balance_from_previous_period"})
print(balance.text)
Это должно вывести текст, который находится внутри элемента с классом balance_from_previous_period, если он существует на странице.