Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.15 KB | None | 0 0
  1. ## Подключение библиотек веб-драйвера, времени, парсинга
  2. from selenium.common.exceptions import NoSuchElementException
  3. from selenium.webdriver.chrome.options import Options
  4. from selenium import webdriver
  5. import datetime
  6. import time
  7. from bs4 import BeautifulSoup
  8.  
  9.  
  10. ## Выставление опций для запуска веб-драйвера
  11. chrome_options = Options()
  12. # Опции которые запускают браузер в консольном режиме(без окон)
  13. # chrome_options.add_argument("--headless")
  14. # chrome_options.add_argument("--disable-gpu")
  15. service_log_path = "chromedriver.log"
  16. # service_args = ['--verbose']
  17.  
  18. ## Инициализация драйвера
  19. driver = webdriver.Chrome('chromedriver',
  20.                             chrome_options=chrome_options,
  21.                             service_log_path=service_log_path)
  22. ## Открытие страницы
  23. driver.get('https://1xstavka.ru/live/')
  24.  
  25. ## Подождать до загрузки
  26. time.sleep(5)
  27.  
  28. label = '1xstavka'
  29. result = []
  30.  
  31. ## Скопировать DOM страницы в нашу переменную page
  32. page = driver.page_source
  33. ## Закрыть драйвер
  34. driver.quit()
  35.  
  36. soup = BeautifulSoup(page, 'html.parser')
  37.  
  38. champs = soup.find("div", {"id" : 'games_content'}).find("div").find("div").find("div").findAll("div", recursive=False) #нашли все блоки с чемпионатами
  39. if len(champs):
  40.     for champ in champs:
  41.         #Ищем виды спорта
  42.         sport_name = champ.find("div", {"class" : 'c-events__name'}).find("a").get("title").split('.')[0] #нашли все виды спорта
  43.         league_name = champ.find("div", {"class" : 'c-events__name'}).find("a").text #Нашли все лиги
  44.         h_rates_list = []
  45.         h_rates = champ.find("div", {"class" : 'c-bets'}).findAll("div", {"class" : 'c-bets__bet'})
  46.         if len(h_rates): #Создали список заголовков ставок
  47.             for h_rate in h_rates:
  48.                 h_rates_list.append(h_rate.text)  #Заполнили список отдельными названиями
  49.         match = {} #Создали словарь под всё событие
  50.         events = champ.findAll("div", {"class" : 'c-events__item_col'}) #Нашли все события в чемпионате
  51.         if len(events):
  52.             for event in events:
  53.                 teams = event.find("div", {"class" : 'c-events__item'}).find("a", {"class" : 'c-events__name'}).find("span", {"class" : 'c-events__teams'}).get("title") #Нашли названия команд в событии
  54.                 event_bets = event.find("div", {"class" : 'c-bets'}).findAll("a")
  55.                 event_bets_dict = {}
  56.                 for index, event_bet in enumerate(event_bets):
  57.                     event_bets_dict[h_rates_list[index]] = event_bet.text
  58.                 match["КФ"] = event_bets_dict
  59.                 match["Вид спорта"] = sport_name
  60.                 match["Лига"] = league_name
  61.                 match["Команды"] = teams
  62.             print(match)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement