-
Notifications
You must be signed in to change notification settings - Fork 0
/
WebScrapping.py
112 lines (90 loc) · 3.5 KB
/
WebScrapping.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import os
import time
import selenium.webdriver as webdriver
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.firefox.options import Options as options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import mysql.connector as myssql
def startdb():
global mydb, mycursor
try:
mydb = myssql.connect(
host="localhost",
user="root",
password="admin",
database="tradingview"
)
# buffer is true nabashe misheUnread result found
mycursor = mydb.cursor(buffered=True)
except (myssql.Error, myssql.Warning) as e:
print(e)
return None
def closedb():
# 4. Commit changes
mydb.commit()
# 5. Close connections
mycursor.close()
def insert(listed):
try:
startdb()
val = tuple(listed)
if len(val) == 4:
mycursor.execute(
"INSERT INTO omidd (euro,gbp,cad,aud) VALUES (%s,%s,%s,%s)", val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
pass
except (myssql.Error, myssql.Warning) as e:
print(e)
return None
closedb()
def main():
FireFoxDriverPath = Service(os.path.join(
os.getcwd(), 'Driver', 'geckodriver.exe'))
browser = webdriver.Firefox(service=FireFoxDriverPath)
browser.implicitly_wait(7)
url = "https://www.xe.com/"
browser.get(url)
browser.find_element(
By.XPATH, '//*[@id="__next"]/div[2]/div[4]/section/div[1]/div[1]/div[1]/div/div').click()
keys = browser.find_element(By.XPATH, '//*[@id="dashboard-top-row"]')
keys.send_keys("aed")
keys.send_keys(Keys.ENTER)
keys = browser.find_element(By.XPATH, '//*[@id="pugsnax"]')
keys.send_keys("aud")
keys.send_keys(Keys.ENTER)
finds_before = []
finds = []
while(True):
find_euro = browser.find_element(By.XPATH,
'/html/body/div[1]/div[2]/div[4]/section/div[1]/div[3]/div/div[1]/div/div').text
splited_euro = find_euro.split(" ")
finds.append(splited_euro[0])
find_gbp = browser.find_element(By.XPATH,
'/html/body/div[1]/div[2]/div[4]/section/div[1]/div[4]/div/div[1]/div/div').text
splited_gbp = find_gbp.split(" ")
finds.append(splited_gbp[0])
find_cad = browser.find_element(By.XPATH,
'/html/body/div[1]/div[2]/div[4]/section/div[1]/div[6]/div/div[1]/div/div').text
splited_cad = find_cad.split(" ")
finds.append(splited_cad[0])
find_aud = browser.find_element(By.XPATH,
'/html/body/div[1]/div[2]/div[4]/section/div[1]/div[7]/div/div[1]/div/div').text
splited_aud = find_aud.split(" ")
finds.append(splited_aud[0])
if finds == finds_before:
finds_before = finds.copy()
finds.clear()
continue
elif finds != finds_before:
print("mosavi nistan")
finds_before = finds.copy()
insert(finds)
time.sleep(3)
finds.clear()
if __name__ == '__main__':
main()