ratapan Posted June 3, 2018 Share Posted June 3, 2018 (edited) Arkadaşlar yeni yeni python ile projeler geliştirmeye çalışıyorum.Şu anda uğraştığım projede namaz vakitleri uygulaması.Sitedeki combobox tan verileri çekip kendi hazırlayacağım masaüstü programına ekleyeceğim. Siteden il ve ilçe isimlerini düzenli bir şekilde çekebiliyorum fakat ilçelere ait value değerini çekmeyi başaramadım.Nasıl yapabilirim acaba? sitedeki kodlar Kod: <select class="district-select region-select" name="stateRegion" aria-label="İlçe Seçimi"> <option value="9146" data-url="/tr-TR/9146/adana-icin-namaz-vakti">ADANA</option> <option value="9147" data-url="/tr-TR/9147/aladag-icin-namaz-vakti">ALADAĞ</option> <option value="9148" data-url="/tr-TR/9148/ceyhan-icin-namaz-vakti">CEYHAN</option> <option value="17876" data-url="/tr-TR/17876/cukurova-icin-namaz-vakti">ÇUKUROVA</option> <option value="9149" data-url="/tr-TR/9149/feke-icin-namaz-vakti">FEKE</option> <option value="9150" data-url="/tr-TR/9150/imamoglu-icin-namaz-vakti">İMAMOĞLU</option> <option value="9151" data-url="/tr-TR/9151/karaisali-icin-namaz-vakti">KARAISALI</option> <option value="9152" data-url="/tr-TR/9152/karatas-icin-namaz-vakti">KARATAŞ</option> <option value="9153" data-url="/tr-TR/9153/kozan-icin-namaz-vakti">KOZAN</option> <option value="9154" data-url="/tr-TR/9154/pozanti-icin-namaz-vakti">POZANTI</option> <option value="9155" data-url="/tr-TR/9155/saimbeyli-icin-namaz-vakti">SAİMBEYLİ</option> <option value="9156" data-url="/tr-TR/9156/tufanbeyli-icin-namaz-vakti">TUFANBEYLİ</option> <option value="9157" data-url="/tr-TR/9157/yumurtalik-icin-namaz-vakti">YUMURTALIK</option> benim yazdığım kodlar Kod: from selenium import webdriver import time br= webdriver.Chrome('C:/Users/win/Downloads/chromedriver.exe') br.get("https://namazvakitleri.diyanet.gov.tr/Tr-tr/9825/") br.implicitly_wait(15) el=br.find_element_by_name('state') el2 = br.find_element_by_name('stateRegion') illerlist = [] ilcelerlist={} for illers in el.find_elements_by_tag_name('option'): illerlist.append(illers) illers.click() time.sleep(2) for ilceler in el2.find_elements_by_tag_name('option'): #ilceler.click() print(illers.text+"/"+ilceler.text) Şu anda ulaşabildiğim veriler aşağıdaki gibi ADANA/ADANAADANA/ALADAĞyapmak istediğim ise ilcelerin value değerlerini de eklemekADANA/ADANA=9146ADANA/ALADAĞ=9147 Edited June 3, 2018 by ratapan Site kodları eklendi. Quote Link to comment Share on other sites More sharing options...
shmd Posted June 3, 2018 Share Posted June 3, 2018 bence yanlış başlamışsın işe. Şuan tüm illeri bu şekilde listeleye biliyor musun? Bence beautifulsoup Kütüphanesiyle ilerle. Yada namaz vakitlerini json olarak veren bir site bul daha rahat edersin. 1 Quote Link to comment Share on other sites More sharing options...
Editor pairs Posted June 4, 2018 Editor Share Posted June 4, 2018 import urllib.request import json r = urllib.request.urlopen("https://ezanvakti.herokuapp.com/ilceler?sehir=539") b = r.read() s = b.decode('utf-8') r.close(); js = json.loads(s) for ilce in js: print(ilce["IlceAdi"] + " = " + ilce["IlceID"]) 1 Quote Link to comment Share on other sites More sharing options...
ratapan Posted June 4, 2018 Author Share Posted June 4, 2018 (edited) @shmd ve @pairs cevaplarınız için teşekkürler.Ben de diyanet vakitlerini json verisi olarak çekebileceğim siteler buldum fakat gayem kendi verilerimi kendim oluşturmak.Burada amacım api üzerinden bilgi alamadığım bir siteden nasıl istediğim bilgilere ulaşabilirim .Zaten burdaki verileri bir defa oluşturup daha sonra sadece diyanetten id üzerinden veri çekeceğim. Edited June 4, 2018 by ratapan Quote Link to comment Share on other sites More sharing options...
shmd Posted June 5, 2018 Share Posted June 5, 2018 Anladım. Web parse'lamak istiyorsun. İlçeleri seçememenin sebebi seçili ilin olmaması veya sadece bir ili tek seçmiş olman. şayet python ile select list kısmında bir objeyi seçilmiş olarak işaretyele bilirsin iç içe 2 döngü ile yapabilirsin. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.