Delphi Can
Delphi siteye yorum - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: Delphi siteye yorum (/showthread.php?tid=2270)

Sayfalar: 1 2


Delphi siteye yorum - quiet1day - 28-05-2018

http://www.delphican.com/wordpress-delph...html+parse
konumla alakalı wordpress sitelere yorum eklemek için bir program hazırlamak istiyorum bu konuda yardımcı olabilir misiniz


wordpress site için id leri kontrol ettim ; author , email , url , comment ve submit .
ilk 4üne editten yazı ekleyip submit etmem gerekiyor


Cvp: Delphi siteye yorum - Halil Han BADEM - 28-05-2018

Buyrun;


WebBrowser1.Silent := True;
WebBrowser1.Navigate('https://www.oyunkabini.com/battlefield-v-ilk-fragmanini-yayinladi-ve-daha-fazlasi-dlc-premium-passes/');

While WebBrowser1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages;
WebBrowser1.OleObject.Document.GetElementByID('comment').Click;
WebBrowser1.OleObject.Document.GetElementByID('comment').Value := 'Deneme yorum!';
WebBrowser1.OleObject.Document.GetElementByID('author').Click;
WebBrowser1.OleObject.Document.GetElementByID('author').Value := 'hyperxman';
WebBrowser1.OleObject.Document.GetElementByID('email').Click;
WebBrowser1.OleObject.Document.GetElementByID('email').Value := 'example@gmail.com';
WebBrowser1.OleObject.Document.GetElementByID('submit').Click;


Bunu da bu işlemler bittikten sonra son hamle ile yaparsın, iki defa yapmanın sebebi webbrowser ilk olarak algılamıyor ikinci clik serüveninde anlıyor;

 WebBrowser1.OleObject.Document.GetElementByID('submit').Click;



NOT: Siteniz beni spam algılamış olabilir kusura bakmayacaksınız artık Sad


Edit: @"Paranoyaq" sadece forma WebBrowser ekle.

Özel mesaj yerine burayı tercih ediyorum çünkü senin gibi başka kişilerde yararlansın diye Smile


Delphi siteye yorum - Bay_Y - 29-05-2018

teşekkürler bilgilendirme için.


Delphi siteye yorum - mrmarman - 29-05-2018

Bir fikir ve önerim olacak; 

- WebBrowser ile erişim ve Get/Post işlemi yaptığınızda Web Site Render süresi kadar trafik yaşattığından işlemleri yavaşlatıcı bir çok unsur karşımıza çıkar.

- Indy veya HttpRequest ile işlemi yürütürseniz işlem süper hızlı olacaktır. Çünkü site resimleri, sayfa içi javascript vs. bunlar tetiklenmeyecek işlem hızlanacaktır.

- Ayrıca Wordpress tipi blog/siteler RSS Feed barındırır. Bunu hız kazandırıcı unsur olarak kullanın.

Örnek bir proje hazırladım, kaynak kodları koymadım. 
Ezbere yürümeyin diye böyle yaptım. 

Yukarıdaki kısma dilediğiniz wordpress sitesini yazın bir problemle karşılaşmazsınız. 

qfgdolgemelz6adrejq4.png

WordPress_CommentBot.rar -  1.4 MB
Başarılar.


Delphi siteye yorum - quiet1day - 29-05-2018

(29-05-2018, Saat: 14:45)mrmarman Adlı Kullanıcıdan Alıntı: Bir fikir ve önerim olacak; 

- WebBrowser ile erişim ve Get/Post işlemi yaptığınızda Web Site Render süresi kadar trafik yaşattığından işlemleri yavaşlatıcı bir çok unsur karşımıza çıkar.

- Indy veya HttpRequest ile işlemi yürütürseniz işlem süper hızlı olacaktır. Çünkü site resimleri, sayfa içi javascript vs. bunlar tetiklenmeyecek işlem hızlanacaktır.

- Ayrıca Wordpress tipi blog/siteler RSS Feed barındırır. Bunu hız kazandırıcı unsur olarak kullanın.

Örnek bir proje hazırladım, kaynak kodları koymadım. 
Ezbere yürümeyin diye böyle yaptım. 

Yukarıdaki kısma dilediğiniz wordpress sitesini yazın bir problemle karşılaşmazsınız. 

qfgdolgemelz6adrejq4.png

WordPress_CommentBot.rar -  1.4 MB
Başarılar.

Yararlı paylaşımlarınızdan ötürü çok teşekkürler


Delphi siteye yorum - mrmarman - 29-05-2018

Merhaba

Wordpress ve Joomla ile oldukça fazla tecrübem oldu. Delphi ile benzer otomasyon çözümleri de çalıştım  Bazılarını paylaşayım. 

Wordpress RSS feed için kullanılan link

https://www.oyunkabini.com/feed/

Her wordpress sürümü için aynı değil ancak wordpress tasarımcıları bir ortak payda sundular. 

Versiyona göre uygun RSS linkini tespit eden joker link aşağıdaki şekilde. 

https://www.oyunkabini.com/?feed=rss

Bu kilit yapıyı baz alırsanız her versiyon wordpress için de tek kod ile ulaşma imkanınız olur. 

Zaten örnek projeyi de bu yapı temelli olarak paylaştım. 
Şimdi kolları sıvama vaktidir.  Smile


Delphi siteye yorum - ozcanm - 30-05-2018

(29-05-2018, Saat: 22:29)mrmarman Adlı Kullanıcıdan Alıntı: Merhaba

Wordpress ve Joomla ile oldukça fazla tecrübem oldu. Delphi ile benzer otomasyon çözümleri de çalıştım  Bazılarını paylaşayım. 

Wordpress RSS feed için kullanılan link

https://www.oyunkabini.com/feed/

Her wordpress sürümü için aynı değil ancak wordpress tasarımcıları bir ortak payda sundular. 

Versiyona göre uygun RSS linkini tespit eden joker link aşağıdaki şekilde. 

https://www.oyunkabini.com/?feed=rss

Bu kilit yapıyı baz alırsanız her versiyon wordpress için de tek kod ile ulaşma imkanınız olur. 

Zaten örnek projeyi de bu yapı temelli olarak paylaştım. 
Şimdi kolları sıvama vaktidir.  Smile

Hocam yanlış yorumlamadıysam eğer, sizin projede ilk olarak https://www.oyunkabini.com/?feed=rss linkinden gelen sonuç değeri kontrol ediliyor 200 den farklı bir değer gelir ise yada boş değer dönerse https://www.oyunkabini.com/feed/ linki kontrol ediliyor.Sonuç OK ise daha sonrasında gelen "response Content"  içeriğinde itemler arasındaki verileri <title> ve <link> değerlerini  alarak ListBoxlara ekleme yapılıyor.

Gönderme kısmı içinde ise ilgili sayfa(Yorum gönderilecek sayfa) çağırılarak,sayfa içeriğinde 2 değer alınması gerekiyor "comment_parent" ve "comment_parent_ID". Bu değerler İsim,mail ve yorumla birlikte göndermemiz gereken parametre verilerini veriyor.

Post işlemini yapacağımız adre ise https://www.oyunkabini.com/wp-comments-post.php

Tüm bu bilgilere(parametre bilgileri) aşağıdaki gibi browser üzerinden Yorum Gönder kısmına sağ klik yaparak açılan pencereden, öğeyi incele dediğimizde görüntüleniyor.
urlpost.png


Delphi siteye yorum - mrmarman - 30-05-2018

Smile @"Cyber"
Üstadım süpersin bu kadar güzel anlatılır.
Sadece tek düzeltme, 200' den başka değer dönerse ya wordpress değil ya da sorun var demektir. 

Joker link browse edildiğinde olması gereken linke otomatikman evriliyor. 

Hani INDY kullanırken HandleRedirect TRUE ise otomatik geçiyor demek istedim.

Bravo. Rolleyes


Delphi siteye yorum - ozcanm - 30-05-2018

Sizin söylediğiniz evrilme olayını fark etrim hocam, ilgili site için 301 hata kodunu veriyor. Yanlış yorumlamadıysam 301 açılımda aslında tam bir hata olmadığı bağlantı linki üzerinde değişiklik olduğu bilgisi veriliyor.
RSS içermeyen sitelerde deneyip sonucu gördüm birden fazla ve farklı veri/sayfa dönüşleri oluyor.
Bende sayenizde birşeyler öğrenmiş oldum hocam, hiçbir konu önemsiz değildir.


Cvp: Delphi siteye yorum - quiet1day - 30-05-2018

function DoLogin(const username,email,url,comment: string): string;
var
IdHTTP: TIdHTTP;
Request: TStringList;
begin
try
  Request := TStringList.Create;
  try
    Request.Add('action=do_login');
    Request.Add('url=https://www.oyunkabini.com/battlefield-v-ilk-fragmanini-yayinladi-ve-daha-fazlasi-dlc-premium-passes/');
    Request.Add('submit=727');
    Request.Add('author'+username);
    Request.Add('email='+email);
    Request.Add('url='+url);
    Request.Add('comment='+comment);
    Request.Add('submit');
    IdHTTP := TIdHTTP.Create;
    try
      IdHTTP.AllowCookies := True;
      IdHTTP.HandleRedirects := True;
      IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
      IdHTTP.Post('https://www.oyunkabini.com/wp-comments-post.php', Request);
      Result := IdHTTP.Get('http://www.oyunkabini.com');
      if StrUtils.ContainsStr(Result, 'submit') then //Login başarısız demektir
        Result := '';
    finally
      IdHTTP.Free;
    end;
  finally
    Request.Free;
  end;
except
  Result := '';
end;
end;

Kodlarında yanlışlarım nelerdir ?