· 5 years ago · Aug 02, 2020, 01:02 PM
1from selenium.webdriver.firefox.options import Options as FirefoxOptions
2from selenium import webdriver
3from selenium.webdriver.support.ui import WebDriverWait
4from selenium.webdriver.common.by import By
5from selenium.webdriver.support import expected_conditions as EC
6from selenium.common.exceptions import NoSuchElementException
7import sqlite3
8from os import system, name
9from terminaltables import AsciiTable
10import traceback
11
12
13
14
15class match():
16 """docstring for match"""
17 def __init__(self, matchCode):
18 self.matchCode = matchCode
19 def setMatchData(self,home,away,Home_Odd,Away_Odd,Draw_Odd,matchDate):
20 self.home = home
21 self.Home_Odd = Home_Odd
22 self.Away_Odd = Away_Odd
23 self.Draw_Odd = Draw_Odd
24 self.matchDate = matchDate
25
26data = []
27matches = []
28
29conn = sqlite3.connect("mdjs.db")
30cursor = conn.cursor()
31
32while(True):
33
34 print("""
35 1- Insert A New League
36 2- Display Leagues
37 3- Update Odds
38 4- Exit
39 """)
40
41 choice = input("Enter Your Choice : ")
42
43 if choice == "1":
44 url = input("\nPlease Enter League Url : ")
45 league = input("Enter League name : ")
46
47 query = """ INSERT INTO leagueUrl (url, league, lastupdate) values (?,?,?)"""
48 cursor.execute(query,(url,league,"None"))
49 conn.commit()
50 input("Added Successfully, Press Any Key To Continue\n")
51 system('clear')
52 elif choice == "2":
53 data.clear()
54 query = "select * from leagueUrl"
55 cursor.execute(query)
56 result = cursor.fetchall()
57 data.append(['League', 'url','last update'])
58 table = AsciiTable(data)
59 for res in result:
60 data.append([res[1],res[2],res[3]])
61 print(table.table)
62 input('All Data Has Been Displayed! \n')
63 system('clear')
64 elif choice == "3":
65 options = FirefoxOptions()
66 options.add_argument("--headless")
67 driver = webdriver.Firefox(options=options)
68 print("Firefox Opened")
69
70 query = "select * from leagueUrl"
71 cursor.execute(query)
72 result = cursor.fetchall()
73 #for row in result:
74
75 # query = """CREATE TABLE IF NOT EXISTS """ + row[2] +""" (
76 # "id" INTEGER PRIMARY KEY AUTOINCREMENT,
77 # "matchCode" TEXT,
78 # "Home" TEXT,
79 # "Away" TEXT,
80 # "Home_Odd" INTEGER,
81 # "Away_Odd" INTEGER,
82 # "Draw_Odd" INTEGER,
83 # "matchDate" TEXT
84 # )"""
85 cursor.execute(query)
86 conn.commit()
87
88 driver.get("https://cotesport.mdjsjeux.ma/fr/view/tournament/t-4891/0")
89 print("Loading Data From : Swedish League")
90
91 #driver.get(row[1])
92 #print("Loading Data From : "+row[2])
93
94
95 #headers = driver.find_elements_by_xpath("//div[@class='odds-header odds-data']/following-sibling::div")
96 headers = driver.find_elements_by_xpath("//div[@class='odds-wrapper']//following-sibling::div[@class='odds-header odds-info']")
97
98 for header in headers:
99 matchDate = header.find_element_by_xpath(".//span[@class='date']").text
100 print(matchDate)
101 #print(header.get_attribute('class'))
102 #datarows = header.find_elements_by_xpath("following-sibling::div[@class='odds-header odds-data']")
103 datarows = header.find_elements_by_xpath("following-sibling::div[@class='odds-header odds-data' and preceding-sibling::div[@class='odds-header odds-data']]")
104 #datarows = header.find_elements_by_xpath("following-sibling::div[@class='odds-header odds-data' and preceding-sibling::span[@class='date'][text()='"+matchDate+"']")
105 for datarow in datarows:
106 #print(datarow.get_attribute('class'))
107 matchCode = datarow.find_element_by_xpath(".//em[@class='matchCode']").text
108 print("Match Code : "+matchCode)
109
110
111 driver.quit()
112
113
114
115#"following-sibling::div[@class='odds-header odds-data' and preceding-sibling::div[@class='odds-header odds-data']//span[@class='date'][text()='2 août 2020']"
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130 # DateList = driver.find_elements_by_xpath("//div[@class='odds-header odds-info']")
131 # matchDates=[]
132 # print("\nLeague : "+row[2])
133 # for md in DateList:
134 # matchDates.append(md.find_element_by_xpath(".//span[@class='date']").text)
135
136 # print(matchDates)
137
138 # matchesList = driver.find_elements_by_xpath("//div[@class='odds-header odds-data']")
139
140 # for match in matchesList:
141 # matchCode = match.find_element_by_xpath(".//em[@class='matchCode']").text
142 # print("\nmatch code : "+matchCode)
143
144 # k = match.find_element_by_xpath("following-sibling::div").get_attribute("class")
145 # print("Next Div Class Name : " + k)
146 # if "2020" in k:
147 # exit()
148
149
150
151