TKGM den excel ile sorgulama yapmak ve bilgi almak mümkün müdür?

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Türkiyedeki tüm İl, İlçe ve Mahalleri kodlarıyla birlikte listeleyecek şekilde script'i hazırladım.

Fakat beklediğim gibi, scriptin çalışma süresi 5-6 dakikayı geçtikten sonra Google scriptin çalışmasını sonlandırdı... Bu süre içersinde henüz 2000 adet civarında veri alınabilmişti.


Capture.PNG


Bir ara, sadece seçilen ile ait ilçe ve mahalleleri listeleyecek şekilde yeni bir script hazırlarım.

.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Normalde TKGM sorgu limiti günlük 250 adet. IP değiştirme/Modem resetleme gibi işlemlerle geçilebiliyor.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Az önceki denememde yaklaşık 3500 adet veri aldıktan sonra script sonlandı.....

.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Yeni rekor : 4156 :)


İnternet hızına bağlı olarak, değişiyor sanırım....

Edit:
5070'e kadar çıktı ...... işi "cache" de sanırım etkiliyor......

Edit:
5600'e kadar çıktı ..... Artık sunucu tarafından IP ban yemeden, denemeyi bırakıyorum .... :)

.
 
Son düzenleme:

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Tüm İL ve İLÇELERE ait liste kodlarıyla birlikte aşağıdaki script ile tek seferde alınabilmektedir.

Toplam 973 adet verinin alınması bende, yaklaşık 1,5 dakika sürmektedir.


JavaScript:
function getIL_ILCE_Liste() {
    var myArr=["SIRA No","İL","İL KODU","İLÇE","İLÇE KODU"];
    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    ss.getRange('A1:E1').setValues([myArr]);
    SpreadsheetApp.flush();
    ss.getRange('A2:E').clear();
    var url='https://cbsservis.tkgm.gov.tr/megsiswebapi.v3/api/idariYapi/ilListe' 
    var j = 1
    try {
      var httpResponse = UrlFetchApp.fetch(url,{'muteHttpExceptions': true});
        } catch (e) {
          httpResponse.getResponseCode();
          Browser.msgBox('Hata var...!\\n\\n' + e.toString(), Browser.Buttons.OK);
          return;
      }
      
    var responseContent = httpResponse.getContentText();
    var responseCode = httpResponse.getResponseCode();
    if (responseCode == 200) {  
      objJSON = JSON.parse(responseContent);
      for (var i=0;i<objJSON.features.length;i++) {
        SpreadsheetApp.flush();
        var url='https://cbsservis.tkgm.gov.tr/megsiswebapi.v3/api/idariYapi/ilceListe/' + 
                 objJSON.features[i]['properties']['id'] ;
        
        var httpResponse = UrlFetchApp.fetch(url,{'muteHttpExceptions': true});
        var responseCode = httpResponse.getResponseCode();
        var responseContent = httpResponse.getContentText();
        if (responseCode == 200) {  
          objJSON2 = JSON.parse(responseContent);
          for (var ii=0;ii<objJSON2.features.length;ii++) {           
            j = j + 1
            ss.getRange(j,1).setValue(j-1);
            ss.getRange(j,2).setValue(objJSON.features[i]['properties']['text']);
            ss.getRange(j,3).setValue(objJSON.features[i]['properties']['id']);
            ss.getRange(j,4).setValue(objJSON2.features[ii]['properties']['text']);
            ss.getRange(j,5).setValue(objJSON2.features[ii]['properties']['id']);
          }
        }
      }
    }
    else if (responseCode !== 200){
      ss.getRange(i+2,2).setValue(responseContent);
  } 
}



Capture.PNG


.
 
Son düzenleme:

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,167
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Sn. @Haluk Bey nasıl çalıştığını anlayamadım.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Tahsin Bey, bunlar VBA kodu değil .....

Google Sheets'de script uygulaması.... JavaScript gibi.

.
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,167
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Sn. @Haluk hocam, bilgilendirme için teşekkür ederim.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Sayın @Haluk ustam son scripti il kodunu manuel girdikten sonra döngü ile ilçe ve mahalleleri çekme şeklinde düzenlenebilirse 81 ili tek tek güncelleme işlemi daha kolay olur diye düşünmekteyim.

İl kodu 23 girildi mesela. İlçe > mahale şeklinde listeyi oluşturması gibi.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@RBozkurt ;

Belirttiğiniz gibi; seçilen bir İle ait tüm İlçe ve Mahalleler kodlarıyla birlikte aşağıdaki videoda görüldüğü gibi listelenmektedir...


.TestHD.gif


Bu işi yapan script aşağıda verilmiştir;

JavaScript:
function get_IL_ILCE_MAHALLE_Liste() {
    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

    var myArr=["SIRA No","İL","İL KODU","İLÇE","İLÇE KODU","MAHALLE", "MAHALLE KODU"];
    ss.getRange('A1:G1').setValues([myArr]);

    SpreadsheetApp.flush();
   
    ss.getRange('A2:G').clear();

    var ui = SpreadsheetApp.getUi();
    var IL_ID = ui.prompt("İL Kodunu buraya girin...").getResponseText();

    if (IL_ID !=='') {
        var j =1

        var url='https://cbsservis.tkgm.gov.tr/megsiswebapi.v3/api/idariYapi/ilListe';
       
        var httpResponse = UrlFetchApp.fetch(url,{'muteHttpExceptions': true});
        var responseCode = httpResponse.getResponseCode();
        var responseContent = httpResponse.getContentText();

        if (responseCode == 200) {
          objJSON = JSON.parse(responseContent);

          for (var i=0; i<objJSON.features.length; i++) {
            if (objJSON.features[i]['properties']['id'] == IL_ID){
              var myIL    = objJSON.features[i]['properties']['text'];
              var myIL_ID = objJSON.features[i]['properties']['id'];
              break;
            }
          }    
        }

        var url='https://cbsservis.tkgm.gov.tr/megsiswebapi.v3/api/idariYapi/ilceListe/' + IL_ID        
       
        var httpResponse = UrlFetchApp.fetch(url,{'muteHttpExceptions': true});
        var responseCode = httpResponse.getResponseCode();
        var responseContent = httpResponse.getContentText();

        if (responseCode == 200) {
          objJSON2 = JSON.parse(responseContent);

          for (var ii=0; ii<objJSON2.features.length; ii++) {          
            SpreadsheetApp.flush();
            var url='https://cbsservis.tkgm.gov.tr/megsiswebapi.v3/api/idariYapi/mahalleListe/' +
                      objJSON2.features[ii]['properties']['id'] ;
       
            var httpResponse = UrlFetchApp.fetch(url,{'muteHttpExceptions': true});
            var responseCode = httpResponse.getResponseCode();
            var responseContent = httpResponse.getContentText();

            objJSON3 = JSON.parse(responseContent);

            for (var iii=0; iii<objJSON3.features.length; iii++) {
              j = j + 1
              ss.getRange(j,1).setValue(j-1);

              ss.getRange(j,2).setValue(myIL);
              ss.getRange(j,3).setValue(myIL_ID);

              ss.getRange(j,4).setValue(objJSON2.features[ii]['properties']['text']);
              ss.getRange(j,5).setValue(objJSON2.features[ii]['properties']['id']);

              ss.getRange(j,6).setValue(objJSON3.features[iii]['properties']['text']);
              ss.getRange(j,7).setValue(objJSON3.features[iii]['properties']['id']);
            }
          }
        }
      }  
      SpreadsheetApp.getActive().toast( myIL + " ili için veriler alındı!", "BİLGİ");
    }

.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Teşekkürler @Haluk ustam çok makbule geçti. Ben burdan güncellerim.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Script'i ayarladım, Fakat verilerde TR karakter yok :(
Api üzerinden verilmemiş

282

Aksaray

90

Sariyahşi

950

Kizilirmak

207436



Olması gereken

282

Aksaray

90

Sarıyahşi

950

Kızılırmak

207436



**

718

Konya

64

Kadinhani

649

Osmancik

22344



Olması gereken

718

Konya

64

Kadınhanı

649

Osmancık

22344

 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ne diyeyim artık bilemedim..... Web Servisi hazırlayan memur aldığı maaştan memnun değil herhalde, fazla uğraşmamış....

Web servisin bir dokümantasyonu olsa bakardık ama, o da yok....

.
 
Son düzenleme:

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Elimde farklı bir programın .dll si var içinde varsa farklı bir server adresi vs bulursam eklerim
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
İşin ilginç tarafı, aşağıdaki resimde olduğu gibi İlçeleri bazen sorunsuz ("ı", "i" karmaşası olmadan) getiriyor....

Capture.PNG

.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,805
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Haluk Hocam,
Ben bunu anlık internet trafiğinin yoğunluğuna bağlıyorum. Tabi yanılmış ta olabilirim.
Saygılarımla
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
638
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Sayın Haluk hocam;

16 nolu posttaki örneğe göre tanzim edilmiş (koordinat bilgisi yazılmadan) Mahalle ID, Ada ve Parsel bilgilerini kullanarak, diğer bilgileri getirecek bir çalışmanızı ücretli veya ücretsiz paylaşım yapmanız mümkünmüdür.Sayglarımla.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Script'i ayarladım, Fakat verilerde TR karakter yok :(
Api üzerinden verilmemiş
       

       

Merhaba Haluk Hocam,
Ben bunu anlık internet trafiğinin yoğunluğuna bağlıyorum. Tabi yanılmış ta olabilirim.
Saygılarımla

@RBozkurt ; @Tevfik_Kursun ;


Zaten sitedeki uygulamanın kendisi de aynı web servisi kullandığı için, tarayıcıdan uygulamaya girdiğinizde aynı sorunun orada da olduğu görülebiliyor....


Capture.PNG

.
 
Son düzenleme:

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Sisteme giren vatandaş vurgeç yapmış :)
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sayın Haluk hocam;

16 nolu posttaki örneğe göre tanzim edilmiş (koordinat bilgisi yazılmadan) Mahalle ID, Ada ve Parsel bilgilerini kullanarak, diğer bilgileri getirecek bir çalışmanızı ücretli veya ücretsiz paylaşım yapmanız mümkünmüdür.Sayglarımla.

Ekli MS Excel dosyasını kullanabilirsiniz....

.
 

Ekli dosyalar

Üst