Webbrowser soru

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ready4die
Üye
Mesajlar: 40
Kayıt: 04 Eki 2007 10:17

Webbrowser soru

Mesaj gönderen ready4die »

s.a
ben webbrowser.navigate('www.site.com');
ile siteyi açıyorum fakat bu sitenin kodları arasında istediğim stringi nasıl çıkartabilirim ?
mesela sitede 'Selam Naber Nasılsın' stringi var bu stringteki 'Selam Naber' i nasıl alabilirim ?
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

html parse olarak aratın. bu konuda birçok örnek var

ancak derdiniz sadece metinleri almaksa > < arasındaki metinler bile ilk etapta işinizi görür... (büyük küçük doru sıradadır)
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
ready4die
Üye
Mesajlar: 40
Kayıt: 04 Eki 2007 10:17

Mesaj gönderen ready4die »

parse ile denedim fakat beceremedim
danaci
Üye
Mesajlar: 178
Kayıt: 24 May 2005 01:45

Mesaj gönderen danaci »

aşağıdaki kod işini görürü sanırım

var
yer,i:integer;

begin

i:=0;
Memo1.Text:=IdHTTP1.Get('http://www.havaizleme.gov.tr/StationInfo.aspx?ST_ID=91');
for i:=0 to length(memo1.Text) do
begin
if copy(Memo1.Text,i,24) = 'Hava Kalitesi İndeksi :' then
begin
Edit1.Text:=copy(Memo1.Text,i+33,2);
end ;

end;
end;
ready4die
Üye
Mesajlar: 40
Kayıt: 04 Eki 2007 10:17

Mesaj gönderen ready4die »

kod için teşekkürler ama idhttp componentimde sorun var siteyi açmıyor hata veriyor o yüzden twebbrowser componenti kullanıyorum.. yani twebbrowser componentine göre kod laızm :S
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Mesaj gönderen Lord_Ares »

şöyle yapabilirsin

var
aranacakyer:WideString; -->webbrowserdaki sayfanın kodunu bu değişkene çekicez
bulunacak:integer; --> bulmak istediğin kelimeyi buna yazıcan
kopyala:ansistring;


begin

aranacakyer:=WebBrowser1.OleObject.document.body.innerHTML;
bulunacak:=pos('selam naber ',aranacakyer);---> arıyacağın kelime ve arayacağın yeri yazarsın
kopyala:=copy(aranacakyer,bulunacak,11);-->aranacakyerde,buluncak kelimenin başından 11 karakter kopyala

memo1.text:=kopyala;

end;



Açıklama;

bulunacak:=pos('selam naber ',aranacakyer);

burda kullanılan ' bulunacak ' integer bir değer çünkü 'pos' arama yaparken bulduğu yerin rakamsal değerini verir yani 'selam naber' kelimesinin ilk harfi, aradığın yerde kaçıncı harf olduğunu bulur.

Örnek

selam naber

burda naber kelimesin ilk harfi, soldan sağa doğru sayınca 7 nci harf pos ile ararsan sana 7 rakamını verir.


kolay gelsin
ready4die
Üye
Mesajlar: 40
Kayıt: 04 Eki 2007 10:17

Mesaj gönderen ready4die »

Lord_Ares yazdı:şöyle yapabilirsin

var
aranacakyer:WideString; -->webbrowserdaki sayfanın kodunu bu değişkene çekicez
bulunacak:integer; --> bulmak istediğin kelimeyi buna yazıcan
kopyala:ansistring;


begin

aranacakyer:=WebBrowser1.OleObject.document.body.innerHTML;
bulunacak:=pos('selam naber ',aranacakyer);---> arıyacağın kelime ve arayacağın yeri yazarsın
kopyala:=copy(aranacakyer,bulunacak,11);-->aranacakyerde,buluncak kelimenin başından 11 karakter kopyala

memo1.text:=kopyala;

end;



Açıklama;

bulunacak:=pos('selam naber ',aranacakyer);

burda kullanılan ' bulunacak ' integer bir değer çünkü 'pos' arama yaparken bulduğu yerin rakamsal değerini verir yani 'selam naber' kelimesinin ilk harfi, aradığın yerde kaçıncı harf olduğunu bulur.

Örnek

selam naber

burda naber kelimesin ilk harfi, soldan sağa doğru sayınca 7 nci harf pos ile ararsan sana 7 rakamını verir.


kolay gelsin


buna yakın bir mantıkla yaptım..

Bir başka sorum var oda aynı açtığım sayfada '' karakterleri arasındaki string'i nasıl alabilirim ? yani ; 'string' ' ' arasındaki string yazısını almak istiyorum bunu nasıl yapabilirim ?
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Mesaj gönderen Lord_Ares »

var
aranacakyer:WideString; -->webbrowserdaki sayfanın kodunu bu değişkene çekicez

bulunacak1,bulucak2 :integer; --> bulmak istediğin diyelim ki şöyle "selam> burda çift tırnak işaretinden başla, büyüktür işaretine kadar al demek için iki tane karakter arıyacaksın biri " işareti biri > işareti bu yüzden bulunacak1 " işaretini, bulunacak2 ile > işaretine konumlanıcaz

kopyala:ansistring;

begin

aranacakyer:=WebBrowser1.OleObject.document.body.innerHTML;
bulunacak1:=pos(' '' ',aranacakyer);
---> arıyacağın kelime ve arayacağın
yeri yazarsın
bulunacak2:=pos(' > ',aranacakyer);--->

kopyala:=copy(aranacakyer,bulunacak1, bulunacak2);-->aranacakyerde,buluncak1 'den ( yani " işaretinden) bulunacak2 ye ( > karakterine kadar) kopyala değişkenine al demiş oluyoruz burdaki bulunacak2 değişkenine şöyle yaparsan kopyala:=copy(aranacakyer,bulunacak1, bulunacak2-1) dersen > işaretinden önceki karaktere kadar kopyala demiş olursun

memo1.text:=kopyala;

end;



bu konu ile ilgili sayın mrmarman hocamın bana bir örneği var çok güzel bir kod istersen bunu dene viewtopic.php?t=22005

burda diğer arkadaşlarında bana vermiş olduğu güzel fikirler var tekrar teşekkür ediyorum onlara .
Cevapla