Удаление числа из тега span (без идентификатора и класса), содержащегося в тегах div

avatar
Francesco
2 апреля 2021 в 01:01
428
1
1

Я новичок в программировании и пытаюсь выполнить парсинг веб-сайта.

Веб-сайт представляет собой онлайн-казино (https://www.888casino.it/live-casino/#filters=all-roulette), и мне нужно очистить только один отображаемых чисел (число, содержащееся в определенной позиции, меняется примерно каждые 30 секунд, но я подумаю об этом позже).

<div class="sc-qbELi jLgZIw">
  <span>2</span>
</div>

Число, которое я хочу очистить, содержится в тегах span, которые я не могу найти, поскольку у них нет идентификатора или класса. Как следствие, я задумался о том, чтобы найти тег div, содержащий тег span, а затем очистить число, содержащееся в тегах span, с помощью таких функций, как .contents или .next_element или .children

.

Чтобы найти тег div (это не первый тег div в html-коде, и он находится во многих других тегах div):

  • Я импортировал модули и установил ссылку на веб-страницу:

    импорт из bs4 BeautifulSoup

    запросы на импорт

    импорт urllib.request

    url = 'https://www.888casino.it/live-casino/#filters=all-roulette'

    ответ = запросы.get(url)

    soup = BeautifulSoup(response.text, "html.parser")

  • Я пробовал следующие три решения:

.

div_tag = soup.findAll('div', class_='sc-qbELi jLgZIw')

div_tag = soup.find("div", class_="sc-qbELi jLgZIw")

div_tag = soup.select("div.jLgZIw.sc-qbELi")

Проблема в том, что при печати эти строки кода выводятся соответственно: [ ], None, [ ]. Поэтому, когда я пытаюсь добавить .children или .content в div_tag, я тоже ничего не получаю.

Я был бы рад, если бы вы помогли мне понять, как это сделать. Спасибо за внимание

Источник
Matiiss
2 апреля 2021 в 01:24
0

попробуйте найти все div без класса

Ответы (1)

avatar
Jonathan Leon
2 апреля 2021 в 02:48
1

Мне пришлось использовать селен. Веб-сайт, скорее всего, загружается динамически

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")


driver = webdriver.Chrome('chromedriver.exe', options=chrome_options)
url = 'https://www.888casino.it/live-casino/#filters=all-roulette'
driver.get(url)
time.sleep(5)
html = driver.page_source
soup = BeautifulSoup(html, "html.parser")

Использование

len(soup.find_all(class_="sc-qbELi jLgZIw")) 

дает длину 50. Вам нужно выяснить, как получить правильный, но это дает результат, с которого можно начать