Skip to main content

AccessTr.neT


Excel Makro İle Web Sayfasından Resim Alma

Excel Makro İle Web Sayfasından Resim Alma

#19
(01/05/2021, 20:31)idrisy yazdı: Hocam; Sorun kodun hızında değil, sayfanın yüklenmesinde. Sayfada çok fazla resim olduğu için Access webbowserde sayfa çok uzun sürede yükleniyor, excelde İE üzerinden aldığı için sayfa çabuk yükleniyor.

Sayın @idrisy
Access webbrowser farklı birşey kullanmıyor o da IE. En üst versiyonu kullanmak yönünden sıkıntınız var ise bilgisayarınızın registry ayarlarına girin (Start / Run (Başlat /Çalştır) dan regedit yazarak)

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION içinde yeni bir dword (32bit) ekleyin. Değer adına msaccess.exe
değer verisine 11001 yazın.
Cevapla
#20
Hocam; yine yavaş. Sayfayı en az 8-10 denemede yüklüyor.
Cevapla
#21
Bahsettiğiniz yavaşlığın sebebi kodlar veya Access değil kaynak sorunlu @idrisy Bey. İllaki accessin webbrowser denetimi sorunlu diyorsanız bu iş için ActiveX Web Browserı deneyebbilirsiniz ancak göreceksiniz ki pek değişiklik olmayacak. En basit hali ile şöyle açıklayayım size şifreli bir siteden veri çekmeye çalışıyorsunuz sorgudaki her döngüde şifreyi sorguluyor, hedef kaynak da kendi içinde şifreli onun için ayrıca bir sorgulama yapıyor ve üstüne üstlük hedef sitenin bant genişliğide sorunlu. Bir diğer husus da hedef siteye bu fotoları yükleyen sizlersiniz, okullar, okul idareleri,vs. asıl kaynak elinizde oraya da yönelebilirsiniz. Bu gece bakmaya çalışacağım gerçi @feraz hocam da bakmış bizlerle karşılaştırınca o hepimizin üstadı sayılır Excel konusunda sonuç alamamış.
Cevapla
#22
(01/05/2021, 23:16)atoykan yazdı: Bahsettiğiniz yavaşlığın sebebi kodlar veya Access değil kaynak sorunlu @idrisy Bey. İllaki accessin webbrowser denetimi sorunlu diyorsanız bu iş için ActiveX Web Browserı deneyebbilirsiniz ancak göreceksiniz ki pek değişiklik olmayacak. En basit hali ile şöyle açıklayayım size şifreli bir siteden veri çekmeye çalışıyorsunuz sorgudaki her döngüde şifreyi sorguluyor, hedef kaynak da kendi içinde şifreli onun için ayrıca bir sorgulama yapıyor ve üstüne üstlük hedef sitenin bant genişliğide sorunlu. Bir diğer husus da hedef siteye bu fotoları yükleyen sizlersiniz, okullar, okul idareleri,vs. asıl kaynak elinizde oraya da yönelebilirsiniz. Bu gece bakmaya çalışacağım gerçi @feraz hocam da bakmış bizlerle karşılaştırınca o hepimizin üstadı sayılır Excel konusunda sonuç alamamış.

Yok abey excelden çok fazla anlamam sadece işimi görecek kadar.

Önceki kodları excelde denemiştim hata veriyordu webbroser1.document.all gibi yerlerde vs... ilgili kütüphaneleri eklememe rağmen.
Ayrıca 64 bit api için yazılmış 32 bit içinde eklenmeliydi declare yerlerde ptrsafe felan silinip #if vba7 then gibi.
O yüzden örnek istemiştim oda önceki mesajda yazdığım durumdan olmadı.

Gerçi Access kodlarıda çok karışıktı Img-cray
Cevapla
#23
1 - URLDownloadToFile 0, AlinanResim.src, burada kullanılan AlinanResim.src değeri ne? resmin tam adresi değil mi?
2 -
(26/04/2021, 18:04)idrisy yazdı: Hocam EK teki dosyayı buldum ancak o da uzantısı belli olan resimleri alıyor.
7.mesajınızda "uzantısı belli olan resimleri alıyor" derken kast ettiğiniz tam olarak neydi? tam adresi olan resimlerin alınması mıydı?
Cevapla
#24
<td class="dataGridActive" align="center">
<img id="dgListe_imgResim_0" src="OKLResimGosterListe.aspx?dataTC=13737636912" *****color:#0000C0;border-width:1px;border-style:Solid;height:171px;width:133px;">
</td>

Hocam; yukarıdaki kodda da gördüğünüz gibi src kodu içerisinde resmin uzantısı belirtilmiyor.


Şu kod ile alıyormuşum gibi oluyor ancak resimler bozuk ve hep aynı büyüklükte oluyor.

Sub OgrenciResimAl()

    Dim sinifObj, tarihObj, saatObj, subeObj, ogretmenObj  As Variant
    Dim doc As HTMLDocument
    Set objShell = CreateObject("Shell.Application")
    IE_count = objShell.Windows.Count
    For X = 0 To (IE_count - 1)
        On Error Resume Next
        my_url = objShell.Windows(X).document.Location
        my_title = objShell.Windows(X).document.Title
      If my_url Like "https://e-okul.meb.gov.tr/OrtaOgretim/OKL/OOK05002.aspx" Then
            Set IE = objShell.Windows(X)
            Set doc = IE.document
            Exit For
        Else
        End If
    Next


    Dim theTable As Object

    Dim t As Variant
    Dim k As Integer
    Dim A As Integer
    Dim HTML_Img As Object, AlinanResim As Object
    Dim TempDir As String
    Dim ResimYolu As Variant
    Dim Klasör, KlasörYolu As Variant, Buldum, Aranan, Devam As Variant


    k = 1
    Set theTable = doc.getElementById("dgListe").getElementsByTagName("img")
   
    For Each t In theTable
   
        Set Klasör = CreateObject("Scripting.FileSystemObject")
        KlasörYolu = ThisWorkbook.Path & "\" & "Resimler"
        Buldum = Klasör.folderexists(KlasörYolu)
        If Buldum = False Then
            Klasör.createfolder KlasörYolu
        Else
        End If
   
        TempDir = Environ("Temp")
      URLDownloadToFile 0, t.src, TempDir & "\" & "1.jpg", 0, 0
        URLDownloadToFile 0, t.src, KlasörYolu & "\" & Mid(t.src, InStr(1, t.src, "=") + 1, 11) & ".jpg", 0, 0

        k = k + 1
    Next t
    DoEvents
               
End Sub
Son Düzenleme: 02/05/2021, 11:23, Düzenleyen: idrisy.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da