При парсинге на python вместо текста вылезают квадратные скобки []

Рейтинг: -1Ответов: 1Опубликовано: 01.04.2023

Пытался сделать парсинг одного сайта, сделал всё как надо, но в итоге при выводе командой 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)

К командной строке ответ : []

Ответы

▲ 0

Квадратные скобки, которые вы получаете при печати, говорят о том, что 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, если он существует на странице.