• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Google Sheets Import Veri Çekme

yasin85

Altın Üye
Katılım
29 Haziran 2011
Mesajlar
268
Excel Vers. ve Dili
2019, Türkçe
Merhaba Değerli Arkadaşlar,

Google Sheets kullanarak linklerde bulunan numaraları "B" sutununa yazmak istiyorum.

Normalde IMPORT fonksiyonunu kullanarak veri çekiyorum fakat belki siteden dolayı farklı bir fonksiyon işlem yapılması gerekiyor olabilir.

İşlemin çözümü için bir çare bulamadım bu konuda yardımcı olurmusunuz.

İlgili dosyayı paylaşıma açtım.

Google Sheets GİT
 
Sözkonusu site muhtemelen, bot'larla veri alınmasını önlemek üzere "GET" metodu ile gönderilen isteklere karşı güvenlik önlemi almış.

IMPORTXML veya script ile veri çekilemiyor...... en azından ben beceremedim.

.
 
@Haluk Bey Merhaba,

Öncelikle zaman ayırdığınız için çok teşekkür ederim.

estağfurullah sizin bilgi , ve yeteneklerinizi az çok biliyoruz çalışmalardan forumdan güvenlik önlemlerini almışlardır dediğiniz gibi "Google Sheets" isteklerini engellemişlerdir.


Saygılar..
 
.

Google Sheets haricinde bu linklerdeki ilgili alanı ala bileceğimiz bir çalışma excel makro yada alternatif bir çözüm ile mümkün ola bilir mi?
 
VBA ile denedim olmadı, belki Selenium ile olabilir .... bende kurulu olmadığı için deneme şansım yok.

.
 
Merhaba Değerli Arkadaşlar,

Google Sheets kullanarak linklerde bulunan numaraları "B" sutununa yazmak istiyorum.

Normalde IMPORT fonksiyonunu kullanarak veri çekiyorum fakat belki siteden dolayı farklı bir fonksiyon işlem yapılması gerekiyor olabilir.

İşlemin çözümü için bir çare bulamadım bu konuda yardımcı olurmusunuz.

İlgili dosyayı paylaşıma açtım.

Google Sheets GİT

Belli Bir Yere Kadar geldim Ama sanki api kullanılması gerektiğini varsayıyorum belki buradan ilerletilebilir.
JavaScript:
function webSayfasindanVeriCek() {

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
 
 
  var sheet = spreadsheet.getSheetByName("Sayfa1"); // Sayfa adını kendi dosyanıza göre ayarlayın

 
  var urlRange = sheet.getRange("A2:A" + sheet.getLastRow());
  var urlValues = urlRange.getValues();

  for (var i = 0; i < urlValues.length; i++) {
    var webSayfasiURL = urlValues[i][0];
    
    try {
     
      var options = {
        muteHttpExceptions: true,
        headers: {
          headers: {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
}

        }
      };
      var webSayfasi = UrlFetchApp.fetch(webSayfasiURL, options).getContentText();

     
      var telefonNumarasiDeseni = /<span[^>]+data-content="([^"]+)"[^>]*><\/span>/;

    
      var telefonNumarasiEslesme = webSayfasi.match(telefonNumarasiDeseni);

      
      var telefonNumarasi = telefonNumarasiEslesme ? telefonNumarasiEslesme[1] : "Telefon numarası bulunamadı.";

   
      sheet.getRange(i + 2, 2).setValue(telefonNumarasi);
    } catch (e) {
      Logger.log("Hata: " + e.toString());
      Logger.log(webSayfasi)
      sheet.getRange(i + 2, 2).setValue("Hata");
    }
    
  }
}
 
@MusaPEKEL Bey Merhaba,

Öncelikle zaman ayırdığınız ve ilgilendiğiniz için teşekkür ederim.

Kodu çalıştıdığımda " Telefon numarası bulunamadı. " olarak ekrana çıkıyor.
Ek olarak bir işlem yapılması gereklimidir.
Yoksa ilgili sistemin güvenliğinden dolayı bu veriyi alamıyoruz.
 
JavaScript:
function webSayfasindanVeriCek() {

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();


  var sheet = spreadsheet.getSheetByName("Sayfa1"); // Sayfa adını kendi dosyanıza göre ayarlayın


  var urlRange = sheet.getRange("A2:A" + sheet.getLastRow());
  var urlValues = urlRange.getValues();

  for (var i = 0; i < urlValues.length; i++) {
    var webSayfasiURL = urlValues[i][0];
   
    try {
    
      var options = {
        muteHttpExceptions: true,
        headers: {
          headers: {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
}

        }
      };
      var webSayfasi = UrlFetchApp.fetch(webSayfasiURL, options).getContentText();

    
      var telefonNumarasiDeseni = /<span[^>]+data-content="([^"]+)"[^>]*><\/span>/;

   
      var telefonNumarasiEslesme = webSayfasi.match(telefonNumarasiDeseni);

     
      var telefonNumarasi = telefonNumarasiEslesme ? telefonNumarasiEslesme[1] : "Telefon numarası bulunamadı.";

  
      sheet.getRange(i + 2, 2).setValue(telefonNumarasi);
    } catch (e) {
      Logger.log("Hata: " + e.toString());
      Logger.log(webSayfasi)
      sheet.getRange(i + 2, 2).setValue("Hata");
    }
   
  }
}
Belli Bir Yere Kadar geldim Ama sanki api kullanılması gerektiğini varsayıyorum belki buradan ilerletilebilir. bu şekilde yazmışım ama alıntı kısmına geçmiş
 
Geri
Üst