Google Crawl?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 153
- Kayıt: 14 Tem 2008 12:28
Google Crawl?
arkadaşlar programımda hızlı arama yeri yapıyorum....
yazan kelimeyi googlede arayıp link ve isimleriyle listbox'a atacak tıklanınca o site açılcak internet explorer penceresinden...
Biliyorum zor fakat bulamadım hiç bir yerde
yazan kelimeyi googlede arayıp link ve isimleriyle listbox'a atacak tıklanınca o site açılcak internet explorer penceresinden...
Biliyorum zor fakat bulamadım hiç bir yerde
Re: Google Crawl?
arka planda idhttp ile google araması gerçekleştrip linkleri html parse metodlarıyla elde etmelisiniz. linkler için hazır companentlerde mevcut http://www.yunqa.de/delphi/doku.php/pro ... ader/index
-
- Üye
- Mesajlar: 153
- Kayıt: 14 Tem 2008 12:28
Re: Google Crawl?
program tam anlamıyla çalışmıyor hatta hiç çalışmıyor...
html parse olayını biraz daha açabilir misiniz?
html parse olayını biraz daha açabilir misiniz?
Re: Google Crawl?
html parse, html kodlarının içerisinde size lazım olan taglar arasındaki bilgiyi bulma işi. Çalışmayan nedir anlayamadım.
-
- Üye
- Mesajlar: 153
- Kayıt: 14 Tem 2008 12:28
Re: Google Crawl?
daha doğrusu program html verilerini tam okuyamıyor ki şuanda delphiyi çalıştıramıyorum....
"invalid filename" alıyorum....öncelikle şu sorunum çözülse problemimi daha iyi anlatacağıma inanıyorum
"invalid filename" alıyorum....öncelikle şu sorunum çözülse problemimi daha iyi anlatacağıma inanıyorum
Re: Google Crawl?
sildiğiniz companentleri tekrar kurun, sırayla kaldırın. invailed file name hatasında dosyanın adını yazmıyor mu?
verdiğim adresdeki google reader, eski kalmış olabilir, google sistemini değiştirmiştir. http://www.yunqa.de/delphi/doku.php/pro ... figrqds2d1 adresindeki genel amaçlı html parseri kullanın.
verdiğim adresdeki google reader, eski kalmış olabilir, google sistemini değiştirmiştir. http://www.yunqa.de/delphi/doku.php/pro ... figrqds2d1 adresindeki genel amaçlı html parseri kullanın.
Re: Google Crawl?
Tahmin ettiğim şeyi yapıyorsan (hit arttırmak, google aramalarında üste çıkarma için uygulama) daha başlamadan önemli bir ayrıntıya dikkatini çekmek isterim.
Bu parse işlemini kendin yapsan amacına uygun bir işlem yapmış olursun. Çünkü :
Ben daha önce kendim için benzer bir uygulama hazırladım. Tecrübe ettiğim konu, google taraması yaptığın browser üzerinden ilgili linke tıkladığında google referanslı arama yapmış oluyorsun. Bu da sitenin hitini olumlu yönde bir tane arttırmış oluyor. Diğer türlüsü; google'da aramış olmak tek başına bişey ifade etmiyor. Bunu neden diyorum, sen listbox'ta biriktirdiğin linki okuyup müstakil olarak Navigate ettirdiğinde google'ın referansını kaybetmiş olursun. Bilgilerinize sunulur...
Aksi ise bu yazılanları dikkate almana gerek yok. Yine de parse işlemine çalış çok zor değildir. Sitede DelphiTürkiye - RSS başlığı ile bir örnek hazırlamıştım. Çalışır durumdadır. İncelersin...
Başarılar.
Bu parse işlemini kendin yapsan amacına uygun bir işlem yapmış olursun. Çünkü :
Ben daha önce kendim için benzer bir uygulama hazırladım. Tecrübe ettiğim konu, google taraması yaptığın browser üzerinden ilgili linke tıkladığında google referanslı arama yapmış oluyorsun. Bu da sitenin hitini olumlu yönde bir tane arttırmış oluyor. Diğer türlüsü; google'da aramış olmak tek başına bişey ifade etmiyor. Bunu neden diyorum, sen listbox'ta biriktirdiğin linki okuyup müstakil olarak Navigate ettirdiğinde google'ın referansını kaybetmiş olursun. Bilgilerinize sunulur...
Aksi ise bu yazılanları dikkate almana gerek yok. Yine de parse işlemine çalış çok zor değildir. Sitede DelphiTürkiye - RSS başlığı ile bir örnek hazırlamıştım. Çalışır durumdadır. İncelersin...
Başarılar.
-
- Üye
- Mesajlar: 153
- Kayıt: 14 Tem 2008 12:28
Re: Google Crawl?
yok hit gibi düşüncem yok...
sadece son günlerdeki googlede olay olayı otomatik tanımlama gibi düzeneği programıma eklemek istiyorum
fakat ;
sizin rss programınızı inceledim
sorduğum soru şunlar ;
+ programa login olurken program nerden bu "username,password" bilgilerini eşleştirip kontrol ediyor ?
Yoksa buradaki listeden mi :
+ ayrıca bir türlü parse olayını googleye monte edemedim çok hata karşılaştı herhalde tam olarak yapamadım....monte edilebilecek örnek kod verebilirseniz minnettar kalırım....
Teşekkürler hocam.
sadece son günlerdeki googlede olay olayı otomatik tanımlama gibi düzeneği programıma eklemek istiyorum
fakat ;
sizin rss programınızı inceledim
sorduğum soru şunlar ;
+ programa login olurken program nerden bu "username,password" bilgilerini eşleştirip kontrol ediyor ?
Yoksa buradaki listeden mi :
Kod: Tümünü seç
http://www.delphiturkiye.com/forum/memberlist.php
Teşekkürler hocam.
Re: Google Crawl?
Biliyorsun veya araştırınca göreceksin, bir çağrıyı / veri grubu bir siteye GET veya POST metodu ile gönderebilirsin. GET metodu direkt adres satırından açık olarak yapılır. POST metdu ile ise parametre bloğu olarak gizli yapılır. RSS örneğinde POST metodu kullanılıyor.
Konumuza gelirsek, aşağıda sana google için parse fonksiyonu veriyorum. Bir ListView gösteriyorsun ona Google tarama sonuçlarını yansıtıyor.
Parse procedure aşağıdaki gibi. En altta da uygulamayı bulacaksın..
Kaynak Kodlarıyla Örnek - RapidShare Linki
Listeden çift mouse tıklaması yaparsan explorer penceresinde bu linki görüntüler...
Uygulaması :
forma bir adet TListView bir adet TWebBrowser ve bir adet de TEdit koy. Sonra bir buton altına da en altta göreceğin örnek uygulamayı ekle...
Kod: Tümünü seç
Url := 'http://www.delphiturkiye.com/forum/ucp.php?mode=login';
Parametreler.Add(Format('username=%s', [Edit1.Text]));
Parametreler.Add(Format('password=%s', [Edit2.Text]));
Parametreler.Add('mode=login');
Parametreler.Add('login=Oturum Aç');
Konumuza gelirsek, aşağıda sana google için parse fonksiyonu veriyorum. Bir ListView gösteriyorsun ona Google tarama sonuçlarını yansıtıyor.
Parse procedure aşağıdaki gibi. En altta da uygulamayı bulacaksın..
Kaynak Kodlarıyla Örnek - RapidShare Linki
Listeden çift mouse tıklaması yaparsan explorer penceresinde bu linki görüntüler...
Kod: Tümünü seç
const
AraFormat = 'http://www.google.com.tr/search?as_q=%s&hl=tr&num=100&btnG=Google''da Ara&as_epq=&as_oq=&as_eq=&lr=&cr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=&as_rights=&safe=images';
procedure GoogleParse( WebBrowser:TWebBrowser; ListView:TListView );
Type tLink = Record
Baslik,
URL,
icerik : String;
End;
function TaglariTemizle(Gelen: string): string;
var
Gecici: string;
Basla, Bitis: Integer;
begin
Gecici := Gelen;
If Trim(Gelen) <> '' then
begin
Gecici := StringReplace( Gecici, ' ', '', [rfReplaceAll, rfIgnoreCase]);
Gecici := StringReplace( Gecici, '&', '', [rfReplaceAll, rfIgnoreCase]);
Basla := Pos('<', Gecici);
Bitis := Pos('>', Gecici);
While (Basla > 0) and (Bitis > 0) and (Bitis > Basla) do
begin
Delete(Gecici, Basla, Bitis - Basla + 1);
Basla := Pos('<', Gecici);
Bitis := Pos('>', Gecici);
Application.ProcessMessages;
end; // While
end; // If
Result := Gecici;
end;
var
Gelen,
Link,
Ara : String;
L : tLink;
begin
ListView.Items.Clear;
ListView.Enabled := False;
Gelen := WebBrowser.OleObject.Document.Body.InnerHTML;
Link := '<H3 class=';
while Pos(Link, Gelen) > 0 do begin
Delete(Gelen, 1, Pos(Link, Gelen) + Length(Link)-1 );
Ara := 'href="';
Delete(Gelen, 1, Pos(Ara, Gelen) + Length(Ara)-1 );
l.URL := Copy(Gelen, 1, Pos('"', Gelen)-1);
Ara := '>';
Delete(Gelen, 1, Pos(Ara, Gelen) + Length(Ara)-1 );
l.Baslik := TaglariTemizle( Copy(Gelen, 1, Pos('</H3>', Gelen)-1) );
Ara := '</H3>';
Delete(Gelen, 1, Pos(Ara, Gelen) + Length(Ara)-1 );
l.icerik := TaglariTemizle( copy(Gelen, 1, Pos('<CITE>', Gelen)-1) );
With ListView.Items.Add do begin
Caption := '';
Subitems.Add( l.Baslik );
Subitems.Add( l.icerik );
Subitems.Add( l.URL );
end;
end;
ListView.Enabled := True;
end;
forma bir adet TListView bir adet TWebBrowser ve bir adet de TEdit koy. Sonra bir buton altına da en altta göreceğin örnek uygulamayı ekle...
Kod: Tümünü seç
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
WebBrowser1.Navigate( Format(AraFormat, [Edit1.text]) );
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE
do Application.ProcessMessages;
GoogleParse( WebBrowser1, ListView1 );
ListView1.RowSelect := True;
end;
En son mrmarman tarafından 01 Nis 2011 08:48 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
-
- Üye
- Mesajlar: 153
- Kayıt: 14 Tem 2008 12:28
Re: Google Crawl?
Allah razı olsun Muharrem hocam ,teşekkürler fakat herhalde çok acemiyim ;
+ Post metodunu biliyorum fakat o üye eşleştirmesini hala göremedim
mesela ;
sizin örnek programınızdaki oturum yerine :
kullanıcı adı : Saçmasapan
kullanıcı şifresi : saçmassapn
gibi varolmayan bir kullanıcı ismini girdiğimizde programınız bu kullanıcı adı ve şifresini nasıl doğru olup olmadığını,forumda bu kullanıcı ismi olup olmadığını anlayacak?
+ yaptınız sağolun örnek google html parse : sayfa 1 deki sonuçlarımı gösteriyor yoksa tüm sayfadaki örneklerimi?
teşekkürler sizin başınızı ütülediğimi biliyorum fakat acemiliğime verin...teşekkür ve saygılarım..
+ Post metodunu biliyorum fakat o üye eşleştirmesini hala göremedim
mesela ;
sizin örnek programınızdaki oturum yerine :
kullanıcı adı : Saçmasapan
kullanıcı şifresi : saçmassapn
gibi varolmayan bir kullanıcı ismini girdiğimizde programınız bu kullanıcı adı ve şifresini nasıl doğru olup olmadığını,forumda bu kullanıcı ismi olup olmadığını anlayacak?
+ yaptınız sağolun örnek google html parse : sayfa 1 deki sonuçlarımı gösteriyor yoksa tüm sayfadaki örneklerimi?
teşekkürler sizin başınızı ütülediğimi biliyorum fakat acemiliğime verin...teşekkür ve saygılarım..
Re: Google Crawl?
Login olurken kullanıcı adı de şifresini yolluyoruz. Sonuçta sunucu bize kullanıcı var ya da yok demiyor mu ? işte bu bize bu kullanıcının var olmadığını veya şifresinin hatalı olduğunu yine parse ederek okuyabiliyoruz.
Google olayında da ilk 100 sonucu isteyen kod hazırladım. Dilersen parse işlemi esnasında recursive ( iç içe ) aynı fonksiyonun kendisini çağırmasını sağlayıp tüm sayfaları bir bir dolaştırabilirsin. Bu senin elinde.
Google olayında da ilk 100 sonucu isteyen kod hazırladım. Dilersen parse işlemi esnasında recursive ( iç içe ) aynı fonksiyonun kendisini çağırmasını sağlayıp tüm sayfaları bir bir dolaştırabilirsin. Bu senin elinde.
-
- Üye
- Mesajlar: 153
- Kayıt: 14 Tem 2008 12:28
Re: Google Crawl?
teşekkürler hocam deneyeceğim dediklerinizi...mrmarman yazdı:Login olurken kullanıcı adı de şifresini yolluyoruz. Sonuçta sunucu bize kullanıcı var ya da yok demiyor mu ? işte bu bize bu kullanıcının var olmadığını veya şifresinin hatalı olduğunu yine parse ederek okuyabiliyoruz.
Google olayında da ilk 100 sonucu isteyen kod hazırladım. Dilersen parse işlemi esnasında recursive ( iç içe ) aynı fonksiyonun kendisini çağırmasını sağlayıp tüm sayfaları bir bir dolaştırabilirsin. Bu senin elinde.
Ne kadar teşekkür etsem azdır.
Re: Google Crawl?
Hoca'yı tep takdir etmişimdir.
Programı tabiki indirdim birşeyler kaparız illaki diye
Yanlız IE den midir bilmem bende İçerik lerde kare kare kutucuklar çıktı sonra içerik yazıyor.
Programı tabiki indirdim birşeyler kaparız illaki diye
Yanlız IE den midir bilmem bende İçerik lerde kare kare kutucuklar çıktı sonra içerik yazıyor.
Bir kelimenin anlamını öğretsen bile yeter..
Re: Google Crawl?
@conari muhtemelen Explorer ayarlarından kaynaklıdır, çünkü verdiğim ekran görüntüsündeki şekilde sonuç alıyorum. Sorun devam ederse, gelen HTML veriyi önce UTF8 edip parse işlemine öyle başla. Tarama sonuçlarından bakarak bilgisayardan bilgisayara farklılık olabileceğinden öngörünü de kullanabilirsin.
başarılar..
başarılar..
-
- Üye
- Mesajlar: 153
- Kayıt: 14 Tem 2008 12:28
Re: Google Crawl?
hocam ilk 100 sonuç'a ayarlamışsınız fakat bunu daha da kısaltıp veya uzatabilir miyiz...
biraz inceledim :
tüm olay bunun üzerine kurulu herhalde çünkü ;
buradaki const'tan anladığım kadarıyla :
bu kısımda ki "100" harfi 100 sonuç'u listeliyor ben bunu normal iexplorer'de açtığımda ve bunu 250 yaptığımda 250 sonuç listeleniyor ...
fakat programda böyle birşey yaptığımda yanı 100 harfini 150 veya 200 yaptığımda yine ilk 100 sonuç gösteriliyor...acaba çok yalnış yolda mıyım?
biraz inceledim :
Kod: Tümünü seç
Format(AraFormat, [Edit1.text])
Kod: Tümünü seç
const
AraFormat = 'http://www.google.com.tr/search?as_q=%s&hl=tr&num=100&btnG=Google''da Ara&as_epq=&as_oq=&as_eq=&lr=&cr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=&as_rights=&safe=images';
Kod: Tümünü seç
earch?as_q=%s&hl=tr&num=100&btnG=Googl
fakat programda böyle birşey yaptığımda yanı 100 harfini 150 veya 200 yaptığımda yine ilk 100 sonuç gösteriliyor...acaba çok yalnış yolda mıyım?