шансы парсинга веб-сайтов
Я новичок в программировании на Python 3.8.3.
Я люблю футбол и люблю изучать шансы разных лиг. Я пытаюсь экстраполировать шансы с сайта https://www.oddsportal.com/, которые затем я хотел бы перенести на excel.
У меня две проблемы:
- Я не могу понять, как экстраполировать все игры таким образом, не создавая каждый раз больше кодов (10 кодов, если есть 10 игр, 5 кодов, если есть 5 игр, и т. Д.). Теперь есть мой пример о Германии - Бундеслига - но я хочу зачистить больше чемпионатов. На данный момент я могу отбросить только первый матч в списке. Есть ли быстрый способ все это сделать?
- Я хотел бы привести эти данные в виде таблицы в excel (возможно, даже с запятой в качестве десятичного разделителя), а что касается шансов открытия, меня не интересуют движения.. Меня интересует только начальный коэффициент а тока странно!
Вот мой код:
import urllib
from selenium import webdriver
from selenium.webdriver import ActionChains
import time
from selenium.webdriver.common.keys import Keys
import matplotlib.pyplot as plt
import numpy as np
import openpyxl
driver=webdriver.Chrome(executable_path="C:\webdrivers\chromedriver.exe") #choose the webdriver location (chrome)
driver.get("https://www.oddsportal.com/soccer/germany/bundesliga/") # comics url
driver.find_element_by_xpath('//*[@id="tournamentTable"]/tbody/tr[4]/td[2]/a[2]').click()
print('Bookmaker', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[1]/table/tbody/tr[1]/td[1]/div/a[2]').text)
print('Match', driver.find_element_by_xpath('//*[@id="col-content"]/h1').text)
print('Data', driver.find_element_by_xpath('//*[@id="col-content"]/p[1]').text)
print('1', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[1]/table/tbody/tr[1]/td[2]').text)
print('X', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[1]/table/tbody/tr[1]/td[3]').text)
print('2', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[1]/table/tbody/tr[1]/td[4]').text)
print("=========")
element=driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[1]/table/tbody/tr[1]/td[2]/a')
hover=ActionChains(driver).move_to_element(element)
hover.perform()
print('opening Odds Home[1]', driver.find_element_by_xpath('//*[@id="tooltipdiv"]').text)
element=driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[1]/table/tbody/tr[1]/td[3]/a')
hover=ActionChains(driver).move_to_element(element)
hover.perform()
print('opening Odds Net[X]', driver.find_element_by_xpath('//*[@id="tooltipdiv"]').text)
element=driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[1]/table/tbody/tr[1]/td[4]/a')
hover=ActionChains(driver).move_to_element(element)
hover.perform()
print('opening Odds Away[2]', driver.find_element_by_xpath('//*[@id="tooltipdiv"]').text)
print("=========")
driver.find_element_by_xpath('//*[@id="bettype-tabs"]/ul/li[8]/a/span').click()
time.sleep(1)
print('Doppia Chance', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div/table/tbody/tr[2]/td[1]/div/a[2]').text)
print('1X', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div/table/tbody/tr[2]/td[2]').text)
print('12', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div/table/tbody/tr[2]/td[3]').text)
print('X2', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div/table/tbody/tr[2]/td[4]').text)
print("=========")
driver.find_element_by_xpath('//*[@id="bettype-tabs"]/ul/li[5]/a/span').click()
time.sleep(2)
driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[4]/div/span[5]/a').click()
time.sleep(1)
print('Over 1,5', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[4]/table/tbody/tr[1]/td[1]/div/a[2]').text)
print('Under/Over', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[4]/table/tbody/tr[1]/td[2]').text)
print('Over 1,5', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[4]/table/tbody/tr[1]/td[3]').text)
print('Under 1,5', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[4]/table/tbody/tr[1]/td[4]').text)
print("=========")
driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[8]/div/span[5]/a').click()
time.sleep(1)
print('Over 2,5', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[8]/table/tbody/tr[1]/td[1]/div/a[2]').text)
print('Under/Over', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[8]/table/tbody/tr[1]/td[2]').text)
print('Over 2,5', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[8]/table/tbody/tr[1]/td[3]').text)
print('Under 2,5', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[8]/table/tbody/tr[1]/td[4]').text)
print("=========")
element=driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[8]/table/tbody/tr[1]/td[3]/a')
hover=ActionChains(driver).move_to_element(element)
hover.perform()
print('opening Odds Over 2,5', driver.find_element_by_xpath('//*[@id="tooltipdiv"]').text)
element=driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[8]/table/tbody/tr[1]/td[4]/a')
hover=ActionChains(driver).move_to_element(element)
hover.perform()
print('opening Odds Under 2,5', driver.find_element_by_xpath('//*[@id="tooltipdiv"]').text)
print("=========")
driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[15]/div/span[5]/a').click()
time.sleep(1)
print('Over 3,5', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[15]/table/tbody/tr[1]/td[1]/div/a[2]').text)
print('Under/Over', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[15]/table/tbody/tr[1]/td[2]').text)
print('Over 3,5', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[15]/table/tbody/tr[1]/td[3]').text)
print('Under 3,5', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div[15]/table/tbody/tr[1]/td[4]').text)
print("=========")
driver.find_element_by_xpath('//*[@id="tab-sport-others"]/span').click()
driver.find_element_by_xpath('//*[@id="bettype-tabs"]/ul/li[14]/div/div/p/a[3]').click()
time.sleep(1)
print('Both Teams Scores', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div/table/tbody/tr[1]/td[1]/div/a[2]').text)
print('Goal', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div/table/tbody/tr[1]/td[2]').text)
print('Nogoal', driver.find_element_by_xpath('//*[@id="odds-data-table"]/div/table/tbody/tr[1]/td[2]').text)
print("=========")
element=driver.find_element_by_xpath('//*[@id="odds-data-table"]/div/table/tbody/tr[1]/td[2]/a')
hover=ActionChains(driver).move_to_element(element)
hover.perform()
print('opening Odds Goal', driver.find_element_by_xpath('//*[@id="tooltipdiv"]').text)
element=driver.find_element_by_xpath('//*[@id="odds-data-table"]/div/table/tbody/tr[1]/td[3]/a')
hover=ActionChains(driver).move_to_element(element)
hover.perform()
print('opening Odds NoGoal', driver.find_element_by_xpath('//*[@id="tooltipdiv"]').text)