Created
March 2, 2021 19:56
-
-
Save grole01/840cfc2692ad06c232ebbcbb30304f14 to your computer and use it in GitHub Desktop.
tkinter and selenium
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Default ignored files | |
/shelf/ | |
/workspace.xml |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<component name="InspectionProjectProfileManager"> | |
<settings> | |
<option name="USE_PROJECT_PROFILE" value="false" /> | |
<version value="1.0" /> | |
</settings> | |
</component> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<component name="InspectionProjectProfileManager"> | |
<profile version="1.0"> | |
<option name="myName" value="Project Default" /> | |
<inspection_tool class="PyCompatibilityInspection" enabled="true" level="WARNING" enabled_by_default="true"> | |
<option name="ourVersions"> | |
<value> | |
<list size="4"> | |
<item index="0" class="java.lang.String" itemvalue="2.7" /> | |
<item index="1" class="java.lang.String" itemvalue="3.7" /> | |
<item index="2" class="java.lang.String" itemvalue="3.8" /> | |
<item index="3" class="java.lang.String" itemvalue="3.9" /> | |
</list> | |
</value> | |
</option> | |
</inspection_tool> | |
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true"> | |
<option name="ignoredIdentifiers"> | |
<list> | |
<option value="Scrapy.Amazon_tutorial.Amazon_tutorial.spiders.free.scraper_api" /> | |
</list> | |
</option> | |
</inspection_tool> | |
</profile> | |
</component> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project version="4"> | |
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (scrapy)" project-jdk-type="Python SDK" /> | |
</project> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project version="4"> | |
<component name="ProjectModuleManager"> | |
<modules> | |
<module fileurl="file://$PROJECT_DIR$/.idea/Project with tkinter and selenium.iml" filepath="$PROJECT_DIR$/.idea/Project with tkinter and selenium.iml" /> | |
</modules> | |
</component> | |
</project> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<module type="PYTHON_MODULE" version="4"> | |
<component name="NewModuleRootManager"> | |
<content url="file://$MODULE_DIR$" /> | |
<orderEntry type="inheritedJdk" /> | |
<orderEntry type="sourceFolder" forTests="false" /> | |
</component> | |
</module> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Adrese | |
from selenium import webdriver | |
from webdriver_manager.chrome import ChromeDriverManager | |
from selenium.webdriver.chrome.options import Options | |
from selenium.webdriver.support.ui import WebDriverWait | |
from selenium.webdriver.support import expected_conditions as EC | |
from selenium.webdriver.common.by import By | |
from selenium.webdriver.common.keys import Keys | |
from time import sleep | |
import pandas as pd | |
options=Options() | |
options.add_argument("--headless") | |
driver=webdriver.Chrome(ChromeDriverManager().install(),options=options) | |
#driver=webdriver.Chrome(ChromeDriverManager().install())#,options=options) | |
list=[] | |
for item in Adrese.adrese: | |
driver.get("https://www.a1.hr/INTERSHOP/web/WFS/A1-Shop-Site/hr_HR/a1-fixed/HRK/ViewRequisitionAvailability-View") | |
sleep(2) | |
#grad=driver.find_element_by_id('TechnologyAvailabilityForm_mjesto') | |
#sleep(1) | |
grad=WebDriverWait(driver, 20).until( | |
EC.element_to_be_clickable((By.ID, 'TechnologyAvailabilityForm_mjesto'))) | |
for character in item[0]: | |
grad.send_keys(character) | |
sleep(0.3) # pause for 0.3 seconds | |
grad.send_keys(Keys.RETURN) | |
sleep(0.5) | |
ulica = driver.find_element_by_id('TechnologyAvailabilityForm_Street') | |
ulica.send_keys(item[1]) | |
sleep(2) | |
broj = driver.find_element_by_id('TechnologyAvailabilityForm_StreetNumber') | |
broj.send_keys(item[2]) | |
sleep(0.5) | |
broj.send_keys(Keys.RETURN) | |
sleep(3) | |
#sign_in = driver.find_element_by_xpath('//*[@id="AvailabilityForm"]/fieldset[2]/div[3]/button').click() | |
#sleep(3) | |
data = {} | |
if driver.current_url == "https://www.a1.hr/dostupnost/flatbox": | |
flatbox = str(item) | |
try: | |
data["Flatbox"] = flatbox | |
except: | |
pass | |
else: | |
pass | |
if driver.current_url == "https://www.a1.hr/dostupnost/none": | |
#A="Paketi = "+ str(item) | |
paketi = str(item) | |
try: | |
data["A1_paketi"] = paketi | |
except: | |
pass | |
else: | |
pass | |
try: | |
if driver.find_element_by_xpath('//*[contains(.,"Kabelske")]'): | |
sleep(1) | |
kablovska=str(item) | |
try: | |
data['Kablovska'] = kablovska | |
except: | |
pass | |
else: | |
pass | |
except: | |
pass | |
try: | |
if driver.find_element_by_xpath('//*[contains(.,"Optičke")]'): | |
sleep(1) | |
optika = str(item) | |
try: | |
data['Optika'] = optika | |
except: | |
pass | |
else: | |
pass | |
except: | |
pass | |
list.append(data) | |
print(data) | |
#driver.back() | |
df = pd.DataFrame(list) | |
df.to_excel("A1_usluge.xlsx", index=False) | |
#df.to_csv("A1_usluge.csv", index=False) | |
driver.quit() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
from selenium import webdriver | |
from webdriver_manager.chrome import ChromeDriverManager | |
from selenium.webdriver.chrome.options import Options | |
from selenium.webdriver.support.ui import WebDriverWait | |
from selenium.webdriver.support import expected_conditions as EC | |
from selenium.webdriver.common.by import By | |
from selenium.webdriver.common.keys import Keys | |
from time import sleep | |
import pandas as pd | |
from tkinter import * | |
import threading | |
list = [] | |
def save_info(): | |
grad_info = grad.get() | |
ulica_info = ulica.get() | |
broj_info = broj.get() | |
#broj_info = str(broj_info) | |
grad_entry.insert(INSERT, grad_info) | |
ulica_entry.insert(INSERT, ulica_info) | |
broj_entry.insert(INSERT, broj_info) | |
adresa = grad_info, ulica_info, broj_info | |
list.append(adresa) | |
grad_entry.delete(0, END) | |
ulica_entry.delete(0, END) | |
broj_entry.delete(0, END) | |
return list | |
def A1(): | |
print("Obrada u tijeku...") | |
def close_window(): | |
screen.destroy() | |
List=[] | |
for item in save_info(): | |
#options = Options() | |
#options.add_argument("--headless") | |
#driver = webdriver.Chrome(ChromeDriverManager().install(), options=options) | |
driver = webdriver.Chrome(ChromeDriverManager().install()) # ,options=options) | |
driver.get("https://www.a1.hr/INTERSHOP/web/WFS/A1-Shop-Site/hr_HR/a1-fixed/HRK/ViewRequisitionAvailability-View") | |
#grad=driver.find_element_by_id('TechnologyAvailabilityForm_mjesto') | |
#sleep(1) | |
grad=WebDriverWait(driver, 20).until( | |
EC.element_to_be_clickable((By.ID, 'TechnologyAvailabilityForm_mjesto'))) | |
try: | |
for character in item[0]: | |
grad.send_keys(character) | |
sleep(0.3) # pause for 0.3 seconds | |
grad.send_keys(Keys.RETURN) | |
sleep(0.5) | |
except: | |
pass | |
ulica = driver.find_element_by_id('TechnologyAvailabilityForm_Street') | |
sleep(1) | |
try: | |
for character in item[1]: | |
ulica.send_keys(character) | |
sleep(0.1) # pause for 0.3 seconds | |
except: | |
pass | |
try: | |
ulica.send_keys(Keys.RETURN) | |
sleep(0.5) | |
except: | |
pass | |
#ulica.send_keys(item[1]) | |
#sleep(0.5) | |
broj = driver.find_element_by_id('TechnologyAvailabilityForm_StreetNumber') | |
try: | |
broj.send_keys(item[2]) | |
sleep(0.5) | |
broj.send_keys(Keys.RETURN) | |
sleep(2) | |
except: | |
pass | |
#try: | |
# sign_in = driver.find_element_by_xpath('//*[@id="AvailabilityForm"]/fieldset[2]/div[3]/button').click() | |
# sleep(3) | |
#except: | |
# pass | |
data = {} | |
if driver.current_url == "https://www.a1.hr/dostupnost/flatbox": | |
#sleep(1) | |
flatbox = str(item) | |
try: | |
data["Flatbox"] = flatbox | |
except: | |
pass | |
else: | |
pass | |
if driver.current_url == "https://www.a1.hr/dostupnost/none": | |
#sleep(1) | |
paketi = str(item) | |
try: | |
data["A1_paketi"] = paketi | |
except: | |
pass | |
else: | |
pass | |
try: | |
if driver.find_element_by_xpath('//*[contains(.,"Kabelske")]'): | |
sleep(1) | |
kablovska = str(item) | |
try: | |
data['Kablovska'] = kablovska | |
except: | |
pass | |
else: | |
pass | |
except: | |
pass | |
try: | |
if driver.find_element_by_xpath('//*[contains(.,"Optičke")]'): | |
sleep(1) | |
optika = str(item) | |
try: | |
data['Optika'] = optika | |
except: | |
pass | |
else: | |
pass | |
except: | |
pass | |
List.append(data) | |
print(data) | |
driver.quit() | |
df = pd.DataFrame(List) | |
df.to_excel("A1_usluge.xlsx", index=False) | |
# df.to_csv("A1_usluge.csv", index=False) | |
print("Obrada završena") | |
close_window() | |
return List | |
screen = Tk() | |
screen.geometry("500x500") | |
screen.title("Python Form") | |
heading = Label(text="Unos podataka", bg="grey", fg="black", width="500", height="3") | |
heading.pack() | |
grad_text = Label(text="Grad * ", ) | |
ulica_text = Label(text="Ulica * ", ) | |
broj_text = Label(text="Broj * ", ) | |
grad_text.place(x=15, y=70) | |
ulica_text.place(x=15, y=140) | |
broj_text.place(x=15, y=210) | |
grad = StringVar() | |
ulica = StringVar() | |
broj = StringVar() | |
grad_entry = Entry(textvariable=grad, width="30") | |
ulica_entry = Entry(textvariable=ulica, width="30") | |
broj_entry = Entry(textvariable=broj, width="30") | |
grad_entry.place(x=15, y=100) | |
ulica_entry.place(x=15, y=180) | |
broj_entry.place(x=15, y=240) | |
register1 = Button(screen, text="Unesi novu adresu", width="30", height="2", command=save_info, bg="grey") | |
register1.place(x=15, y=290) | |
register2 = Button(screen, text="Dostupnost A1-usluge", width="30", height="2", command=lambda: threading.Thread(target=A1).start(), bg="grey") | |
#register2 = Button(screen, text="Dostupnost A1-usluge", width="30", height="2", command=A1, bg="grey") | |
register2.place(x=15, y=350) | |
#register3 = Button(screen, text="Izlaz", width="30", height="2", command=close_window, bg="grey") | |
#register3.place(x=15, y=410) | |
screen = mainloop() | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
from selenium import webdriver | |
from webdriver_manager.chrome import ChromeDriverManager | |
from selenium.webdriver.chrome.options import Options | |
from selenium.webdriver.support.ui import WebDriverWait | |
from selenium.webdriver.support import expected_conditions as EC | |
from selenium.webdriver.common.by import By | |
from selenium.webdriver.common.keys import Keys | |
from time import sleep | |
import pandas as pd | |
from tkinter import * | |
import threading | |
list = [] | |
def save_info(): | |
grad_info = grad.get() | |
ulica_info = ulica.get() | |
broj_info = broj.get() | |
#broj_info = str(broj_info) | |
grad_entry.insert(INSERT, grad_info) | |
ulica_entry.insert(INSERT, ulica_info) | |
broj_entry.insert(INSERT, broj_info) | |
adresa = grad_info, ulica_info, broj_info | |
list.append(adresa) | |
grad_entry.delete(0, END) | |
ulica_entry.delete(0, END) | |
broj_entry.delete(0, END) | |
return list | |
def A1(): | |
print("Obrada u tijeku...") | |
def close_window(): | |
screen.destroy() | |
List=[] | |
for item in save_info(): | |
options = Options() | |
options.add_argument("--headless") | |
driver = webdriver.Chrome(ChromeDriverManager().install(), options=options) | |
#driver = webdriver.Chrome(ChromeDriverManager().install()) # ,options=options) | |
driver.get("https://www.a1.hr/INTERSHOP/web/WFS/A1-Shop-Site/hr_HR/a1-fixed/HRK/ViewRequisitionAvailability-View") | |
#grad=driver.find_element_by_id('TechnologyAvailabilityForm_mjesto') | |
#sleep(1) | |
grad=WebDriverWait(driver, 20).until( | |
EC.element_to_be_clickable((By.ID, 'TechnologyAvailabilityForm_mjesto'))) | |
try: | |
for character in item[0]: | |
grad.send_keys(character) | |
sleep(0.3) # pause for 0.3 seconds | |
grad.send_keys(Keys.RETURN) | |
sleep(0.5) | |
except: | |
pass | |
ulica = driver.find_element_by_id('TechnologyAvailabilityForm_Street') | |
sleep(1) | |
try: | |
for character in item[1]: | |
ulica.send_keys(character) | |
sleep(0.1) # pause for 0.3 seconds | |
except: | |
pass | |
try: | |
ulica.send_keys(Keys.RETURN) | |
sleep(0.5) | |
except: | |
pass | |
#ulica.send_keys(item[1]) | |
#sleep(0.5) | |
broj = driver.find_element_by_id('TechnologyAvailabilityForm_StreetNumber') | |
try: | |
broj.send_keys(item[2]) | |
sleep(0.5) | |
broj.send_keys(Keys.RETURN) | |
sleep(2) | |
except: | |
pass | |
#try: | |
# sign_in = driver.find_element_by_xpath('//*[@id="AvailabilityForm"]/fieldset[2]/div[3]/button').click() | |
# sleep(3) | |
#except: | |
# pass | |
data = {} | |
if driver.current_url == "https://www.a1.hr/dostupnost/flatbox": | |
#sleep(1) | |
flatbox = str(item) | |
try: | |
data["Flatbox"] = flatbox | |
except: | |
pass | |
else: | |
pass | |
if driver.current_url == "https://www.a1.hr/dostupnost/none": | |
#sleep(1) | |
paketi = str(item) | |
try: | |
data["A1_paketi"] = paketi | |
except: | |
pass | |
else: | |
pass | |
try: | |
if driver.find_element_by_xpath('//*[contains(.,"Kabelske")]'): | |
sleep(1) | |
kablovska = str(item) | |
try: | |
data['Kablovska'] = kablovska | |
except: | |
pass | |
else: | |
pass | |
except: | |
pass | |
try: | |
if driver.find_element_by_xpath('//*[contains(.,"Optičke")]'): | |
sleep(1) | |
optika = str(item) | |
try: | |
data['Optika'] = optika | |
except: | |
pass | |
else: | |
pass | |
except: | |
pass | |
List.append(data) | |
print(data) | |
driver.quit() | |
df = pd.DataFrame(List) | |
df.to_excel("A1_usluge.xlsx", index=False) | |
# df.to_csv("A1_usluge.csv", index=False) | |
print("Obrada završena") | |
close_window() | |
return List | |
screen = Tk() | |
screen.geometry("500x500") | |
screen.title("Python Form") | |
heading = Label(text="Unos podataka", bg="grey", fg="black", width="500", height="3") | |
heading.pack() | |
grad_text = Label(text="Grad * ", ) | |
ulica_text = Label(text="Ulica * ", ) | |
broj_text = Label(text="Broj * ", ) | |
grad_text.place(x=15, y=70) | |
ulica_text.place(x=15, y=140) | |
broj_text.place(x=15, y=210) | |
grad = StringVar() | |
ulica = StringVar() | |
broj = StringVar() | |
grad_entry = Entry(textvariable=grad, width="30") | |
ulica_entry = Entry(textvariable=ulica, width="30") | |
broj_entry = Entry(textvariable=broj, width="30") | |
grad_entry.place(x=15, y=100) | |
ulica_entry.place(x=15, y=180) | |
broj_entry.place(x=15, y=240) | |
register1 = Button(screen, text="Unesi novu adresu", width="30", height="2", command=save_info, bg="grey") | |
register1.place(x=15, y=290) | |
register2 = Button(screen, text="Dostupnost A1-usluge", width="30", height="2", command=lambda: threading.Thread(target=A1).start(), bg="grey") | |
#register2 = Button(screen, text="Dostupnost A1-usluge", width="30", height="2", command=A1, bg="grey") | |
register2.place(x=15, y=350) | |
#register3 = Button(screen, text="Izlaz", width="30", height="2", command=close_window, bg="grey") | |
#register3.place(x=15, y=410) | |
screen = mainloop() | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
adrese=[ | |
["Zagreb","Kačićeva ulica","6"], | |
["Zagreb","Ilica","8"], | |
["Virovitica","Ulica Pavla Radića","69"], | |
["Zagreb","Karlovačka cesta","4"], | |
["Rovinj","Trg Matteotti","2"], | |
] | |
""" | |
["","",""], | |
["","",""], | |
["","",""], | |
["","",""], | |
["","",""], | |
["","",""], | |
["","",""], | |
["","",""], | |
["","",""], | |
["","",""], | |
["","",""], | |
["","",""] | |
""" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#import Adrese | |
from selenium import webdriver | |
from webdriver_manager.chrome import ChromeDriverManager | |
#from bs4 import BeautifulSoup | |
from time import sleep | |
from selenium.webdriver.chrome.options import Options | |
from selenium.webdriver.support.ui import WebDriverWait | |
from selenium.webdriver.support import expected_conditions as EC | |
from selenium.webdriver.common.by import By | |
from selenium.webdriver.common.keys import Keys | |
#from helium import * | |
import pandas as pd | |
#import xlrd #pip install xlrd==1.2.0 | |
from openpyxl import load_workbook | |
#options=Options() | |
#options.add_argument("--headless") | |
#driver=webdriver.Chrome(ChromeDriverManager().install(),options=options) | |
driver=webdriver.Chrome(ChromeDriverManager().install()) | |
ls=[] | |
workbook = load_workbook(filename="Gradovi.xlsx") | |
sheet = workbook.active | |
for row in sheet.iter_rows(values_only=True): | |
ls.append(row) | |
print("Obrada podataka započinje:") | |
list=[] | |
for item in ls: | |
driver.get("https://www.a1.hr/INTERSHOP/web/WFS/A1-Shop-Site/hr_HR/a1-fixed/HRK/ViewRequisitionAvailability-View") | |
sleep(2) | |
#grad=driver.find_element_by_id('TechnologyAvailabilityForm_mjesto') | |
#sleep(1) | |
grad=WebDriverWait(driver, 20).until( | |
EC.element_to_be_clickable((By.ID, 'TechnologyAvailabilityForm_mjesto'))) | |
for character in item[0]: | |
grad.send_keys(character) | |
sleep(0.3) # pause for 0.3 seconds | |
grad.send_keys(Keys.RETURN) | |
sleep(0.5) | |
ulica = driver.find_element_by_id('TechnologyAvailabilityForm_Street') | |
ulica.send_keys(item[1]) | |
sleep(0.5) | |
broj = driver.find_element_by_id('TechnologyAvailabilityForm_StreetNumber') | |
broj.send_keys(item[2]) | |
sleep(0.5) | |
broj.send_keys(Keys.RETURN) | |
sleep(3) | |
#sign_in = driver.find_element_by_xpath('//*[@id="AvailabilityForm"]/fieldset[2]/div[3]/button').click() | |
#sleep(3) | |
data = {} | |
if driver.current_url == "https://www.a1.hr/dostupnost/flatbox": | |
flatbox = str(item) | |
try: | |
data["Flatbox"] = flatbox | |
except: | |
pass | |
else: | |
pass | |
if driver.current_url == "https://www.a1.hr/dostupnost/none": | |
#A="Paketi = "+ str(item) | |
paketi = str(item) | |
try: | |
data["A1_paketi"] = paketi | |
except: | |
pass | |
else: | |
pass | |
try: | |
if driver.find_element_by_xpath('//*[contains(.,"Kabelske")]'): | |
sleep(1) | |
kablovska=str(item) | |
try: | |
data['Kablovska'] = kablovska | |
except: | |
pass | |
else: | |
pass | |
except: | |
pass | |
try: | |
if driver.find_element_by_xpath('//*[contains(.,"Optičke")]'): | |
sleep(1) | |
optika = str(item) | |
try: | |
data['Optika'] = optika | |
except: | |
pass | |
else: | |
pass | |
except: | |
pass | |
list.append(data) | |
print(data) | |
#driver.back() | |
df = pd.DataFrame(list) | |
df.to_excel("A1_usluge.xlsx", index=False) | |
#df.to_csv("A1_usluge.csv", index=False) | |
print("Obrada podataka završena.") | |
driver.quit() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment