• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü internetten veri çekme (Span) harici

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,271
Çözümler
508
Aldığı beğeni
4,016
Excel Versiyonu
Office 2021 TR
Konuyu Başlatan
Merhaba.
İnternetten veri çekme işine merak saldım bayağıda çözdüm ama bir yerde takıldım şimdilik.

ilk resimde kırmızıyla işaretlediğim yerdeki sadece saatlar gelecek.
En alttaki resimde span yazan yer gelmeyecek.
Kısaca sadece saatler nasıl getirilir?
Bu arada dosyadaki internet adreside sadece tesadüf veri çekmek için buldum tablo var diye.

Uzun yoldan alttaki kodla yaptım ama ben sadece meraktan sormak istedim.

Rich (BB code):
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.



1.png
2.png
 

Ekli dosyalar

  • 1649536711399.png
    1649536711399.png
    2.5 KB · Gösterim: 7
  • tablo veri alma msxml2.xmlhttp ile ve getElementById ile.xlsm
    28.1 KB · Gösterim: 13
syf.Cells(satir, sutun).Value = td.innerText satırını
syf.Cells(satir, sutun).Value = Right(td.innerText, 5) ile değiştirsek?
 
syf.Cells(satir, sutun).Value = td.innerText satırını
syf.Cells(satir, sutun).Value = Right(td.innerText, 5) ile değiştirsek?
Bu örnek için olur ama başka siteden saat harici almaya kalksak iş karışır bence.
Bende bir sürü kod yazmıştım sağdan kodu aklıma gelmedi :)
Yada geldi 4:05 yada diğeri 05:15 gibi olursa diye düşünüp vazgeçmitim galiba Right için.
 
Aslında alttaki gibi split ilede çözülüyor ama nedense kodu arka arkaya çalıştırınca hata veriyor bazen.
Benim asıl öğrenmek istediğim span kısmı mesela getElementsByTagName("span") bunun gibi birşeyler eklenip span varsa altındaki veri al gibi :)
Tamda garip siteye denk gelmişim :)

Rich (BB code):
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
aşağıdaki gibi dener misiniz hocam?
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Çözüm
Teşekkürler halily abey konu çözüldü :)

İnterntten veri çekme olayıda zevkliymiş belki anlamadıklarım olursa konu açarım.
 
Rica ederim
iyi çalışmalar
bu da diziye aktarılmış hali
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Son düzenleme:
Dosya ekdedir hocam .
 

Ekli dosyalar

  • tablo veri alma msxml2.xmlhttp ile ve getElementById ile.xlsm
    25.2 KB · Gösterim: 7
Rica ederim
iyi çalışmalar
bu da diziye aktarılmış hali
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Sağol abey.
Ben extra dizi yada scripting=false ve true eklememiştim çünkü butona tıklayınca verilerin süzüle süzüle gelmesini izlemek heyecanlıydı :)
Böyle daha hızlı tabii.
 
Screenupdate false yapınca diziye almadan daha hızlı aliyor
 
Screenupdate false yapınca diziye almadan daha hızlı aliyor
Redim içindeki yani redim arr(1 to satır,1 to1) burdaki satır yazan nekadar çoksa fazla sürer.Ben genelde garanti olsun diye rows.count ekliyorum.preserve ile yapılınca bu kezde transposeden dolayı 65536 olayı sorun çıkarıyor abey.
Aetık biraz denemer yapayım başka siterlede yapabilecekmiyim bu veri çekmeyi artık :)
Ama mantığı çözdüm :)
 
bu durumda en az 65.000 satırlık bir dizi oluşturulmuş olmuyor mu?
2003 için 65536 diğerler için 1048576 biliyorum.
Dediğim gibi genelde ben böyle yapıyorum belki 1 saniye fark ediyor.
Satır sayısı belliyse o kadarda yazılır.
Litbox yada combo ya zaten zorunlu olmadıkça prerve kullanıyorum orda transpose ye gerek olmadığı için 65536 sorunda olmuyor.
Yada abey bu dosyada alttaki kafadan yazacağım örnek kalıpla preserve olarak yazılınca rows.countada gerek olmaz bildiğiniz gibi.

Redim arr(1 to 1 ,1 to 1)

Döngü içinede

Say =say +1
Redim preserve arr(1 to 10,1 to say)
Arr(1,say)=1
Arr(2,say)=6

Bunlar döngüyede alınabilir.Yazdığım gibi zaten biliyorsunuz.Bu şekilde en başta redime sayı girmeye gerek kalmaz 1000 yada başka.
Bu şekilde yapınca listbox için

Listbox1.column= arr

Yazmak yeterli transposeye gerek kalmadan yada column yerine list yazılabilinir.
Sayfaya aktarmak için ise

Sayfa1.cells(1,1).resize(ubound(arr,2),ubound(arr,1)).value= application.transpose(arr)

Olarak yapılabilinir.Dediğim gibi mobilden kafadan yazdığım için mantık hatası yada kod yazma hatası olabilir abey.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Geri
Üst