Siteden veri alma

Katılım
13 Mart 2018
Mesajlar
4
Excel Vers. ve Dili
office 2016
Kod:
Sub Two()

Set IE = CreateObject("InternetExplorer.Application")

IE.navigate "http://steamcommunity.com/market/listings/578080/PLAYERUNKNOWN's%20Bandana"
Do: DoEvents: Loop Until IE.readyState = 4
Prc1 = IE.document.getElementsByClassName("market_commodity_orders_header_promote")(0).innerText
ActiveSheet.Range("D1").Value = Prc1


IE.navigate "http://steamcommunity.com/market/listings/578080/Military%20Skirt%20(Black)"
Do: DoEvents: Loop Until IE.readyState = 4
Prc2 = IE.document.getElementsByClassName("market_commodity_orders_header_promote")(0).innerText
ActiveSheet.Range("D2").Value = Prc2

'...... 1 den 121 e kadar girdi var.

IE.navigate "http://steamcommunity.com/market/listings/578080/Checkered%20Shirt%20(Coral)"
Do: DoEvents: Loop Until IE.readyState = 4
Prc121 = IE.document.getElementsByClassName("market_commodity_orders_header_promote")(0).innerText
ActiveSheet.Range("D121").Value = Prc121



IE.Quit
End Sub
1) o kadar girdiyi tek bi yere sığdırabilir miyim? Sadece Siteler farklı, ClassName hepsinde aynı.

2) makroyu bazen çalıştırıyorum 1. yeri yapıyor 2. ye geçmiyor, bazen 1. yi bile yapmıyor error veriyor. Ama Vba dan açınca makroyu F8 ile yavaşça yapınca belli bir yere kadar düzgün çalışıyor "her denememde hata verdiği yer değişiyor". Hata kodu: ''object variable or with block variable not set - error '91'''
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Birinci sorunuzu anlamadım.
2. Sorunuzun çözümü için;
Aşağıdaki şekilde sayfa yüklendikten sonra zaman ekleyin. Sayfa yüklenmiş gibi gözüküyor ama nesneler tam gelmiyor sanırım. Bilgisayarın hızına göre bu saniyeye artırın.
Kod:
Do: DoEvents: Loop Until IE.readyState = 4
Application.Wait Now + TimeValue("00:00:03")
Prc1 = IE.document.getElementsByClassName("market_commodity_orders_header_promote")(0).innerText
ActiveSheet.Range("D1").Value = Prc1
 
Katılım
13 Mart 2018
Mesajlar
4
Excel Vers. ve Dili
office 2016
şöyle ki kodu başka bir site için yaptım şuan ki durumu böyle

Kod:
Sub Opskins()

Set IE = CreateObject("InternetExplorer.Application")

IE.navigate "https://opskins.com/?loc=shop_search&app=578080_2&sort=lh&search_item=%22PLAYERUNKNOWN%27s%20Bandana%22"
Do: DoEvents: Loop Until IE.readyState = 4
Prc1 = IE.document.getElementsByClassName("item-amount")(0).innerText
ActiveSheet.Range("B1").Value = Prc1

IE.navigate "https://opskins.com/?loc=shop_search&app=578080_2&sort=lh&search_item=%22Military%20Skirt%20(Black)%22"
Do: DoEvents: Loop Until IE.readyState = 4
Prc2 = IE.document.getElementsByClassName("item-amount")(0).innerText
ActiveSheet.Range("B2").Value = Prc2

Böyle tek tek 150 tane kod yatağı var ve Hepsinde IE.navigate kısmı aramaya kadar aynı:
Kod:
IE.navigate "https://opskins.com/?loc=shop_search&app=578080_2&sort=lh&search_item="
Ve ardında hepsinde çekmek istediğim yer tamamen aynı:
Kod:
Prc2 = IE.document.getElementsByClassName("item-amount")(0).innerText
Bunu loop haline getirebilir miyim? her çekiceğim kod,
Kod:
IE.navigate "https://opskins.com/?loc=shop_search&app=578080_2&sort=lh&search_item="
bunu kullanacak arama yapıp kodu çekecek. yine çok karışık anlattım sanırım
 
Üst