Как найти значение ключа в <html>

zaivanza

Новичок
Пользователь
Дек 28, 2021
28
1
3
Паршу сайт и пытаюсь достать данные из class='tab-pane active', но парсер не видит этот класс, в чем может быть проблема?

Python:
<div class="tab-content">
    <div class="tab-pane show" id="overview">...<div>
    <div class="tab-pane active" id="markets">...<div>
<div>

result = soup.find('div', class_='tab-content')

Выдает только первый tab-pane, второй не видит

Если прописать так, то выдает None:
Python:
result = soup.find('div', class_='tab-pane active')
# None
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
1) find ищет первое вхождение, используй find_all
2) Не уверен, но вроде в класс надо передать список нужных классов
 

zaivanza

Новичок
Пользователь
Дек 28, 2021
28
1
3
1) find ищет первое вхождение, используй find_all
2) Не уверен, но вроде в класс надо передать список нужных классов
1) не помогло
2) так не работает, тк другие подобные классы парсит нормально, проблема только в этом классе class="tab-pane active"

Вывел результат в json, почему-то он изначально парсится видоизменяя класс. То есть он изменил первый класс вот так:

Python:
<div class="tab-content">
<div class="tab-pane show active" id="overview">
А должно быть так:

Python:
<div class="tab-content">
<div class="tab-pane show" id="overview">
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
А ты изначальное значение класса tab-pane show смотрел через инструменты разработчика в браузере или в коде полученным через requests, но еще не распарсеным через BeautifulSoup? Возможно код сайта полученные запросом будет отличаться

Попробуй указать наличие неопределенного ip:
result = soup.select('div.tab-pane[id]')
 

zaivanza

Новичок
Пользователь
Дек 28, 2021
28
1
3
А ты изначальное значение класса tab-pane show смотрел через инструменты разработчика в браузере или в коде полученным через requests, но еще не распарсеным через BeautifulSoup? Возможно код сайта полученные запросом будет отличаться

Попробуй указать наличие неопределенного ip:
result = soup.select('div.tab-pane[id]')
смотрел через инструменты разработчика
select не помог
 

Вложения

  • Снимок экрана 2022-02-21 в 20.31.16.png
    Снимок экрана 2022-02-21 в 20.31.16.png
    22 КБ · Просмотры: 4

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Тогда сохрани в html файл
Python:
data = requests.get(url).content
with open("site.html", 'wb') as f:
    f.write(data)
И найди нужный блок в нем, там уже будут точные данные, по которым надо парсить
 
  • Мне нравится
Реакции: zaivanza

zaivanza

Новичок
Пользователь
Дек 28, 2021
28
1
3
Тогда сохрани в html файл
Python:
data = requests.get(url).content
with open("site.html", 'wb') as f:
    f.write(data)
И найди нужный блок в нем, там уже будут точные данные, по которым надо парсить
и это, к сожалению, не помогло :(
я пошел через костыли и нашел нужные мне данные в другом месте
 
  • Мне нравится
Реакции: Vershitel_sudeb

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Если можно, скинь как будет возможность этот сайт или получившийся html файл, попробую ради интереса распарсить
 

Форум IT Специалистов