Arama motoruna parametre gonderme ve sonucu alma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
CengRecep
Üye
Mesajlar: 10
Kayıt: 22 Oca 2004 05:32

Arama motoruna parametre gonderme ve sonucu alma

Mesaj gönderen CengRecep »

Merhaba...
Şarkı sözlerini ve sanatçıları arayan bir web sitesi var. Ben Delphi ile yazdığım prog. içerisinden sanki o sitenin search kısmına istediğim parametreyi yazmış gibi aratmak ve sonucu programımın içinde göstermek istiyorum. Bunu nasıl bir teknikle yapabilirim. arama yapan server'in şifreleri elimde yok.

Yardimlarınız için teşekkür ederim.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

En basiti Database i ile direk bağlantı kurman işi kolaylaştıracaktır fakat hiç bir webmaster da buna müsade edeceğini sanmam yapman gereken Arama motoru hakkında bilgi sahibi olmandır. Öncelikle hangi script dilinde yazıldığı(asp, php, cgi) sonraki bölümde post eddiği sayfanın içeriğini görsen işini bayağı rahatlatır. Site sahibi ile görüş belki yardımcı olabilir.


İyi Çalışmalar.
En son husonet tarafından 22 Oca 2004 11:48 tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Aklıma bir şey daha geldi webmaster url adreslerini gizlemediyse url adreslerinden post sayfasının aldığı değişkenleri görüp yorumlayabilirsin.

Örnek = http://www.google.com.tr/search?q=fireb ... l=tr&meta=

Yukarıdaki url de "firebird" bir değişkendir.


Bu iş için kullanacağın araç Delphi webbrowser bu nesne işini görebilir.

İyi Akşamlar.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
CengRecep
Üye
Mesajlar: 10
Kayıt: 22 Oca 2004 05:32

Cgi kullanılıyor

Mesaj gönderen CengRecep »

Merhaba...
Dediğiniz gibi veritabanına bağlanmak kolay olacaktır. bu işi yapan bir prog. var : Blaze media. Sitenin IP si : 64.246.48.27...Search için istediğim parametreyi yazıp "Go" butonuna basınca aşağıdaki linle gidiyor. http://6u.2u6.u8.27/cgi-exe/am.cgi... Sizin tahmin ettiğiniz gibi linkin içerisinde parametre göndermiyor. Gönderseydi zaten işim çok kolaydı. acaba bunun bir yöntemi varmı, veritabanına ulaşmadan web sitesini aracı olarak kullanıp arama yapıp sonuçları alabilirmiyim??

İlginiz için teşekkür ederim.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam.

- DivXTurk programında istediğine benzer bir metod kullanıyor ve http://www.IMDb.com sitesi ile http://www.beyazperde.com sitelerinden İngilizce / Türkçe film bilgilerini alıp local bir ADO veritabanına atıyorum.

- HTML hakkında biraz araştırma yaparak bu işleme başlamak gerekiyor.

- Bir form Get ve Post olmak üzere iki metod ile veri gönderip alabiliyor.
- Get metodu kullanıyorsa işiniz çocuk oyuncağı. Bilgiyi @husonet'in bildirdiği şekilde adres satırından isteyebilecek script'i kolayca elde edebilirsiniz.

- Bunu test emenin en kolay yolu, html sayfayı normal Internet Browser ile ulaşıp farklı kaydet ile sayfayı html dosyası olarak kaydedip, içinde metod post olan yerleri metod get yapmak ve Action başlığına ilgili web adresinin root halini girerek hdd'nizden arama sonucunu elde etmeye çalışmak şeklinde olacaktır.

- Biliyorum biraz karmaşık oldu ama Ankara dışında ve zamanı dar olan bir üye olarak yazıyorum bunları, gerisini arkadaşlarım getirirler diye değerlendiriyorum.

Kod: Tümünü seç

<FORM METHOD="post" ACTION="/mailman.cgi">
yazan benzeri bir satır bulduğunuzda, bu forma ait butona bastığınızda adres satırında görünmeyen bir kod üretilir ve /mailman.cgi çalıştırılmak üzere parametre olarak gönderilir.

Kod: Tümünü seç

<FORM METHOD="get" ACTION="http://www.google.com/mailman.cgi">
gibi bişey. Bu örnektir gerçek değil.


- Yukarda bahsettiğim şeyi başarabilirseniz, yani post'ları get yaparsanız bilgisayar en azından gönderdiği parmetreleri satıra yazar ve sizde ipucunu elde etmiş olursunuz. Ayrıca çalışırsa da WebServer'in CGI veya ASP kodunun hem GET hem de POST kabul ettiğini keşfetmiş olur bunu kutlayabilirsiniz. Çünkü bu taktirde tnmhttp bileşeni ile işiniz çok basittir.

- Post metodu mecburiyeti varsa bunu unutun demeyim ama biraz zor olacağının işaretidir diyebilirim. TWebBrowser ile parametre gönderen bir navigasyon scripti üretmelisiniz ve iç içe açılan pencereleri kontrol altına alıp InnerHtml sayfasını okumak gibi benim için halen problem olan bir kontroller dizisine girmeniz gerekecektir. Ben de www.sinema.com'dan bu tip bir veri almaya çabalıyor, kısmen başarılı olabiliyorum. Umarım birinci şekildedir.

- Şimdilik bu kadar, çalışmalarınızda başarılar dilerim. Gelişmeleri bildirin.

Not: Bu arada hangi sayfada arama yapmak istediğinizi bildirseydiniz bakar ona göre fazla bişeyler daha yazabilirdim. Bunu bir sonraki cevabınızda ekleyin, vaktim olursa yine bakar çözüme yardımcı olacak bir kaş şey bulursam paylaşırım.
Resim
Resim ....Resim
name
Kıdemli Üye
Mesajlar: 243
Kayıt: 09 Ağu 2003 02:11
Konum: İstanbul

Mesaj gönderen name »

Herkese iyi çalışmalar
Tam ayrıntılı bir cevap yazacaktımki Muharrem bey daha önce davrandı :D :D
Muharrem bey'in dedikleri geçerli. Yanlız, web formunu server tarafında işleyecek uygulama (.cgi, .exe, .htm sizin uğraştığınız sayfada
"/cgi-exe/am.cgi") kendisine ulaştırılan web formunun "Get" yada "Post" yoluyla gönderilip gönderilmediğini, bildiğim kadarı ile kontrol
etmez. CengRecep'in belirttiği siteyi inceledim, web formu karşı tarafa "Post" metodu (yani gizli) ile gönderiliyor.

husonet'in örneğinin incelemesi aşağıda. http://www.google.com.tr/search?q=fireb ... l=tr&meta=

/search -- Formu işleyecek server tarafındaki uygulama
? -- Uygulamaya gönderilecek parametrelerin başladığını belirtir.
q -- Web formu içersinde bulunan elemanlardan birisi. Aranacak kelimeyi belirtilir. (Tabiki her webmaster kendi yaptığı form içersinde her elemana istediği ismi verebilir. Belirtilen "q" isimli eleman google'un webmaster'ının belirlediği bir isim)
firebird -- Aranacak kelime.
& -- Diğer parametrenin başladığını belirtir.

Sizin sitenizdede http://64.246.48.27/cgi-exe/am.cgi?a=se ... artistname kalıbını kullanarak istediğinizi yapabilirsiniz.
Kullanıcı avatarı
CengRecep
Üye
Mesajlar: 10
Kayıt: 22 Oca 2004 05:32

Teşekkür

Mesaj gönderen CengRecep »

Verdiğiniz bilgiler için gerçekten çok teşekkür ederim. sorunum halloldu sayılır. İyi çalışmalar...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@name Sırası gelmişken ben de sorayım bari.. Aradan çıksın..
kendisine ulaştırılan web formunun "Get" yada "Post" yoluyla gönderilip gönderilmediğini, bildiğim kadarı ile kontrol etmez.
demiştiniz de ona istinaden soruyorum...

http://www.sinema.com hakkında bana ne çözüm önerirsin ?

- Post metodunu kullanıyor. Parametre aktarımını adres satırından yaparsan kablu etmiyor. Aynı parametreyi web html sayfası haline dönüştürüp post ettiğimde sonuç alınabiliyor.
Resim
Resim ....Resim
name
Kıdemli Üye
Mesajlar: 243
Kayıt: 09 Ağu 2003 02:11
Konum: İstanbul

Mesaj gönderen name »

merhaba
Muharrem bey tam olarak emin olmadığımı cümle içersinde belirtmiştim.
Sizinde önceki mesajınızda, belirttiğiniz gibi, ufak bir arama yaparak bu iki metod arasında, web uygulasının seçim yapabileceğini buldum. En azından "asp, aspx" ile hazırlanmış web uygulamalarında aşağıdaki gibi bir satırla "POST" metodu dışında bilgi kabul edilmiyor.
If Request.ServerVariables ("request_method")="POST" Then
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@name vakit ayırıp cevap yazdığın için çok teşekkürler.

- Linkini verdiğim siteden TWebBrowser ile navigasyon yaptırıp, post metodlu formu okutuyorum.

- TWebBrowser'a ait event'lerde bir değil bir kaç olay, navigasyonun bittiğini işaret edebiliyor.

- Birden fazla form içeren bir web sayfasından dönüldüğünden, birden fazla kere bu completed olaylarına giriyor.

- Okuduğum bu formun tüm elemanlarının bittiğini nasıl anlayacağım konusunda bilginiz var mı ?

- Ben bu her completed eventine uğrandığında, global bir sayac'a 1 eklemeyi denedim.

- http://www.sinema.com için bu Sayaç 3 olduğunda bilgiler tamamlandı kabul edip, gelen document innerhtml'sini bir TMemo'ya aktarma yoluyla kısmen başarı sağladım.

- Fakat işlem devam ederken, arka arkaya yapılan iki istek olursa pogran kapatılıp açılana kadar bir daha bilgi okunamıyor.

- Bunun çözümü olarak da boş (Nil) navigasyon yaptırıp resetlemek gibi bir metod uyguluyorum, hatayı bertaraf ediyorum.

- Özet olarak bir navigasyonu bu şekilde geliştirdiğim sayac bazlı sonlandırıldığını sorgulamak bana çok yanlış geliyor. İşlem sonuç verse de kafamda mantık olarak oturmuyor.

- Bu konuda yorumu olan varsa cevap beklerim.

- Başka bir başlık açmak isterdim ama konu benzer olduğundan bu başlık altında devam ettim. Umarım rahatsızlık vermemişimdir.
Resim
Resim ....Resim
name
Kıdemli Üye
Mesajlar: 243
Kayıt: 09 Ağu 2003 02:11
Konum: İstanbul

Mesaj gönderen name »

Aşağıdaki linklerde yer alan makaledeki bileşen yada bilgiler belki işinizi görebilir.

http://clevercomponents.com/articles/ar ... wizard.asp
http://clevercomponents.com/articles/ar ... tppost.asp
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Teşekkürler.

- Mutlaka bakıcam.
Resim
Resim ....Resim
Cevapla