• DİKKAT

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

internet üzerinden veri çekme hatası

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,677
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

İnternet üzerinden veri çekmek için genelde aşağıdaki yöntemi kullanıyorum.
Kod çalıştığında zamanla aşağıdaki ekran hatasını alıyorum ve bir zaman sonra do döngülerinde takılıp kalıyor. Bunun olmaması için nasıl bir kod düzeni yazmak gerekir.



Kod:
Sub verial()
Dim i As Integer, j As Integer

Cells.ClearContents

Const URL As String = _
"http://www.maliyetbul.com/ha09-13-Fiyat-farki-icin-endeksler.php"

   Set ie = CreateObject("InternetExplorer.Application")
   
    ie.Navigate URL
    
    Do Until ie.ReadyState = 4: DoEvents: Loop
    Do While ie.Busy: DoEvents: Loop
     
   On Error Resume Next
   
        'Veriler...
    
     Set a = ie.document.getelementsbytagname("table")
    With ie.document.getelementsbytagname("table").Item(0)
    
     Set b = ie.document.getelementsbytagname("table").Item(0)
     
          For i = 1 To .Rows.Length - 1
        t = .Rows.Length
            'For j = 0 To .Rows(1).Cells.Length - 1

                Cells(1, 1) = .Rows(i).Cells(4).innertext
            Next
y = y + 1

      '  Next

    End With
    

    
    ie.Quit: Set ie = Nothing:
    'MsgBox "Bitti", vbInformation
End Sub
 
Murat selamlar,

Adres doğru devamlı bilgi aldığım adres.
Diğer adreslerde de aynı sorunu yaşıyorum.
Botaş'ın sitesi içinde aynı sorun olmuştu.
 
Selâm Erdem,

BOTAŞ için kodlar..
:ok::

Kod:
[FONT="Trebuchet MS"][SIZE="2"] Sub BOTAS()
    Cells.ClearContents
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
        .navigate "http://botas.gov.tr/index/tur/faaliyetler/dogalgaz/tarifeGoster.asp?t=2&y=2016"
        Do Until .ReadyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
        sat = 1: sut = 1
        For k = 0 To .document.getelementsbytagname("td").Length - 1
            p = Split(.document.getelementsbytagname("td")(k).innertext, vbLf)
            Cells(sat, sut).Resize(1, UBound(p) + 1).Value = p
            sut = sut + 1: t = t + 1
            If t > 4 Then
                sat = sat + 1
                sut = 1
                t = Empty
            End If
        Next
        If Range("A1").Value <> "" Then Range("A65536").End(3).EntireRow.Delete
        .Quit
    End With
End Sub[/SIZE][/FONT]

[YOUTUBE]0EOMoczuiWU[/YOUTUBE]​
 
Murat selam,

Bu verdiğin kodda DO döngüsü kısmında takılı kaldı.
Benim bilgisayarda bir sorun olabilir.
 
Ben de herhangi bir sorun görünmüyor.
Adresteki 2016 'yı hücreye bağladığımda da diğer yıllar için sonuçları alabiliyorum.

Kodlara .Visible = True satırını ilave edip F8 ile adım adım gider misin?
Navigate kısmından sonra nasıl bir sayfa görünüyor?
Resmini paylaşırsan bakayım..
 
Murat selam,

Galiba Botaş'ın asp'li sayfasında dosyasına bağlanmak istediğimizde kapanma hatası veriyor.
Aşağıdaki direkt bağlanma linkini başarısız bağlantı yaptığımda ekranda ben alabiliyorum.
Bu linki nasıl bulabiliriz.

Kod:
"http://botas.gov.tr/index/tur/faaliyetler/dogalgaz/tarifeGoster.asp?t=2&y=2016"
 
Bende durum böyle dostum.

Internet Explorer --> İnternet Seçenekleri --> Gelişmiş sekmesindeki içerisinde sertifika ibaresi geçenlerin seçimini iptal edip bir dener misin?


source.gif
 
Murat sağolasın ilglilendiğin için.
Son olarak aşağıdaki adresi kolaydan nerden bulabiliriz.

"http://botas.gov.tr/index/tur/faaliyetler/dogalgaz/tarifeGoster.asp?t=2&y=2016"
 
Sayfanın kaynak kodundan bulunuyor adres. Dikkatli incelemek gerekiyor.
 
Zeki bey merhaba,

Direkt böyle bir link göremedim. Aşağıdaki adres üzerinden mi yola çıkmamız lazım.

openLink('tarifeGoster.asp?t=2&y=2014','_blank',600,700,1,1)
 
Evet buradadır. Baştarafı da içinde bulunulan sayfa dizini (adres) dir.
 
Geri
Üst