Excel Veri Çekme Sorunu
-
arkadaşlar mrb. elime şöyle bir excel dosyası geçti fakat öğrenci bilgilerini çekmeye çalışırken sonuç sayfasına captcha eklendiği için başarısız oluyor. öğrenci tcsi, okul numarası ve doğum tarihini girdikten sonra ben captcha yı manuel girsem ve tamama basınca işlemine devam etse benim işimi fazlasıyla görür.
Ama ya ne gerek var captchayı kendi çözer derseniz o bomba olur. yardımcı olursanız çok makbule geçer.
teşekkür ederim bu şekilde çözülüyormuş. Makrosunu kullanmak üzere lazım olabilir.
-
hocam hiç anlamam claude'ye sordum :
Merhaba! Anladığım kadarıyla LGS yerleştirme sonuçlarını toplu olarak çekmek istiyorsunuz, ancak captcha nedeniyle sorun yaşıyorsunuz. Size yardımcı olmak için elimden geleni yapacağım, ancak öncelikle bazı önemli noktaları belirtmek isterim:1. Kişisel verilerin korunması çok önemlidir. Öğrenci bilgilerini toplu olarak çekmek, veri koruma yasalarına aykırı olabilir.2. Captcha'ları otomatik olarak çözmek veya bypass etmek, genellikle yasal ve etik değildir. Bu, sistemin güvenliğini ihlal etmek anlamına gelebilir.3. Eğer bu işlemi yapmak için resmi bir yetkiniz varsa, sistemi sağlayan kurumla iletişime geçerek toplu veri çekme konusunda yardım istemeniz daha uygun olabilir.Bu uyarıları göz önünde bulundurarak, size yardımcı olabileceğim daha uygun bir yöntem önerebilirim:1. Manuel giriş yöntemi: Bahsettiğiniz gibi, TC kimlik numarası, okul numarası ve doğum tarihini girdikten sonra captcha'yı manuel olarak girebileceğiniz bir script hazırlayabiliriz. Bu, otomasyonu sağlarken captcha'yı bypass etme sorununu ortadan kaldırır.2. Selenium ile web otomasyonu: Python ve Selenium kullanarak, tarayıcıyı kontrol eden ve gerekli alanları dolduran bir script yazabiliriz. Captcha kısmına geldiğinde script duracak ve sizden manuel giriş bekleyecektir.Eğer bu yaklaşım size uygunsa, aşağıdaki gibi bir Python script taslağı hazırlayabilirim:```pythonfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECimport pandas as pdimport timedef get_student_info(tc, okul_no, dogum_tarihi):driver = webdriver.Chrome() # Chrome sürücüsünü başlatdriver.get("https://e-okul.meb.gov.tr/IlkOgretim/OGR/IOG03001.aspx") # LGS sonuç sayfasına git# Gerekli alanları doldurdriver.find_element(By.ID, "txtTCKimlikNo").send_keys(tc)driver.find_element(By.ID, "txtOkulNo").send_keys(okul_no)driver.find_element(By.ID, "txtDogumTarihi").send_keys(dogum_tarihi)# Captcha için bekleinput("Captcha'yı doldurun ve Enter'a basın...")# Giriş yap butonuna tıkladriver.find_element(By.ID, "btnGiris").click()# Sonuçların yüklenmesini bekleWebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "lblSonuc")))# Sonuçları alsonuc = driver.find_element(By.ID, "lblSonuc").textdriver.quit()return sonuc# Excel dosyasını okudf = pd.read_excel("ogrenci_listesi.xlsx")sonuclar = []for index, row in df.iterrows():tc = row['TC']okul_no = row['Okul No']dogum_tarihi = row['Doğum Tarihi']sonuc = get_student_info(tc, okul_no, dogum_tarihi)sonuclar.append(sonuc)time.sleep(2) # Sunucuya aşırı yük bindirmemek için beklemedf['Sonuç'] = sonuclardf.to_excel("sonuclar.xlsx", index=False)```Bu script şunları yapacaktır:1. Excel dosyasından öğrenci bilgilerini okur.2. Her öğrenci için:- Tarayıcıyı açar ve LGS sonuç sayfasına gider.- TC, okul numarası ve doğum tarihini girer.- Captcha için sizden manuel giriş bekler.- Giriş yapıldıktan sonra sonucu alır.3. Tüm sonuçları yeni bir Excel dosyasına kaydeder.Bu script'i kullanmak için şunları yapmanız gerekecek:1. Python ve gerekli kütüphaneleri (selenium, pandas) yüklemeniz.2. ChromeDriver'ı indirip PATH'e eklemeniz.3. Excel dosyanızı "ogrenci_listesi.xlsx" olarak kaydetmeniz ve script ile aynı dizine koymanız.Lütfen bu script'i kullanırken yasal ve etik kuralları göz önünde bulundurun. Ayrıca, sunucuya aşırı yük bindirmemek için işlemler arasında bekleme süresi ekledim.Eğer bu çözüm size uygunsa veya başka sorularınız varsa, lütfen bana bildirin. Size daha fazla yardımcı olmaktan memnuniyet duyarım.from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECimport pandas as pdimport timedef get_student_info(tc, okul_no, dogum_tarihi):driver = webdriver.Chrome() # Chrome sürücüsünü başlatdriver.get("https://e-okul.meb.gov.tr/IlkOgretim/OGR/IOG03001.aspx") # LGS sonuç sayfasına git# Gerekli alanları doldurdriver.find_element(By.ID, "txtTCKimlikNo").send_keys(tc)driver.find_element(By.ID, "txtOkulNo").send_keys(okul_no)driver.find_element(By.ID, "txtDogumTarihi").send_keys(dogum_tarihi)# Captcha için bekleinput("Captcha'yı doldurun ve Enter'a basın...")# Giriş yap butonuna tıkladriver.find_element(By.ID, "btnGiris").click()# Sonuçların yüklenmesini bekleWebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "lblSonuc")))# Sonuçları alsonuc = driver.find_element(By.ID, "lblSonuc").textdriver.quit()return sonuc# Excel dosyasını okudf = pd.read_excel("ogrenci_listesi.xlsx")sonuclar = []for index, row in df.iterrows():tc = row['TC']okul_no = row['Okul No']dogum_tarihi = row['Doğum Tarihi']sonuc = get_student_info(tc, okul_no, dogum_tarihi)sonuclar.append(sonuc)time.sleep(2) # Sunucuya aşırı yük bindirmemek için beklemedf['Sonuç'] = sonuclardf.to_excel("sonuclar.xlsx", index=False) -
oraya kadar göstermediler abi :) biz o gün bilardoya kaçmıştık.
-
buldum buraya yazacağım çözümü tşkler
-
https://www.bilgisayarbilisim.net/konular/lgs-toplu-sonu%C3%A7-d%C3%BCzenleme.181179/page-6
Bu sayfada vardı sanırım.