Как очистить линии ставок для спортивных команд? - PullRequest
0 голосов
/ 08 ноября 2018

Можно ли отсканировать этот сайт с помощью Selenium и BeautifulSoup?

https://www.betonline.ag/sportsbook/basketball/nba

Я новичок в очистке веб-страниц и не имел опыта программирования.Вот моя попытка удалить команды nba:

#import modules

from bs4 import BeautifulSoup
import requests, os
import pandas as pd
from selenium import webdriver

os.chdir('C:\webdrivers')

#enter your user-agent
header = {'User-agent' : 'your user-agent'}
options = webdriver.ChromeOptions(); options.add_argument("--start-maximized")
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://www.betonline.ag/sportsbook/basketball/nba')

#scrape data

soup = BeautifulSoup(driver.page_source, 'html.parser')
driver.quit()


#parse data (Teams)

team = [i.text for i in soup.find_all('td', {'class': 'col_teamname bdevtt'})]

print(team)

Приведенный выше код успешно удалил команды, как я хотел.

Теперь я хотел бы просмотреть информацию о ставках: а) спред, б) денежная линия, в) общее количество очков и г) время начала.

а) спред:

<td class="hdcp bdevtt ">-9½</td>

Требуемая информация: -9,5

b) денежная линия:

<td class="odds bdevtt moneylineodds displayOdds" cfg="{'a':-500,'d':1.2}">-500</td>

Требуемая информация: -500

c) Всего очков:

<td class="hdcp bdevtt ">212½</td>

Требуется информация: 212,5

d) Время начала:

<td rowspan="3" class="col_time bdevtt">09:05 PM</td>

Требуется информация: 21:05

Я заметил, что данные этих 4 пунктоврасположен в классах тд.Я попробовал подобный код, как приведенный выше, но безуспешноНе уверен, что это потому, что код написан на JavaScript.Если да, то есть ли способ извлечь код с помощью BS4 и Selenium?

Любой совет будет принят с благодарностью.Спасибо за ваше время!

1 Ответ

0 голосов
/ 08 ноября 2018

Попробуйте следующий код, чтобы получить необходимые значения:

for tr in soup.find_all('tr', {'class': 'firstline'}):
    print(tr.find('td', {'class': 'col_teamname'}).text)
    print(tr.find('td', {'class': 'hdcp'}).text)
    print(tr.find('td', {'class': 'moneylineodds'}).text)
    print(tr.find('td', {'class': 'col_time'}).text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...