Я ничего не получаю при попытке почистить стол

1

Поэтому я хочу извлечь здесь номер 45.5: https://www.myscore.com.ua/match/I9pSZU2I/#odds-comparison;over-under;1st-qrt

Но когда я пытаюсь найти стол, я ничего не получаю. Вот мой код:

import requests
from bs4 import BeautifulSoup
url = 'https://www.myscore.com.ua/match/I9pSZU2I/#odds-comparison;over-under;1st-qrt'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36'}
response = requests.get(url, headers=headers)

soup = BeautifulSoup(response.content, 'html.parser')
text = soup.find_all('table', class_ = 'odds sortable')
print(text)

Может ли кто-нибудь помочь мне извлечь номер и сохранить его значение в переменной?

  • 0
    Необработанное содержимое этой страницы не имеет такой таблицы. Похоже, что таблица создается динамическим JavaScript после загрузки страницы, а это означает, что обычный парсер не увидит ее; вам нужен полноценный браузер.
  • 0
    Вам нужен webdriver из selenium . И подождите, пока страница не отобразится полностью.
Теги:
web-scraping

1 ответ

0

Вы можете попробовать сделать это без Selenium, воссоздав динамический запрос, загружающий таблицу.

Оглядываясь на вкладке сети на странице, я увидел этот XMLHTTPRequest: https://d.myscore.com.ua/x/feed/d_od_I9pSZU2I_ru_1_eu

Попробуйте воспроизвести те же параметры, что и запрос.

Чтобы перейти на вкладку сети: Нажмите right-> проверьте element-> Сеть tab-> Выберите XHR и найдите второй запрос.

Изображение 174551

Окончательный код будет выглядеть так:

headers = {'x-fsign' : 'SW9D1eZo'}

page = 
requests.get('https://d.myscore.com.ua/x/feed/d_od_I9pSZU2I_ru_1_eu', 
headers=headers)

Вы должны проверить, отличается ли значение x = fisgn на основе вашего браузера /ip.

  • 1
    Но можете ли вы показать мне, как воспроизвести параметры? (Я полный нуб на питоне)
  • 0
    Да, я закончил свой ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню