PDA

View Full Version : مبتدی: نرم افزار افزایش بازدید سایت



maryam145
چهارشنبه 06 آبان 1394, 12:21 عصر
ا سلام خدمت دوستان عزیز

من در حال طراحی یک نرم افزار برای افزایش بازدید سایت خودم هستم.
تا ی جایی برنامه و نوشتم ولی مشکل داره از دوستان اگر کسی تو این زمینه آشنایی داره ممنون میشم راهنمایی کنه : اینم کدهام :


unit UnitMain;


interface


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,MSHTML,ExtCtrls, OleCtrls, SHDocVw;


type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Timer1: TTimer;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;


var
frmMain: TForm1;
i:Integer;
elem:IHTMLElement;


implementation


uses Math;


{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('www.google.com');


end;
function GetElementById(const Doc: IDispatch; const Id: string): IDispatch;
var
Document: IHTMLDocument2; // IHTMLDocument2 interface of Doc
Body: IHTMLElement2; // document body element
Tags: IHTMLElementCollection; // all tags in document body
Tag: IHTMLElement; // a tag in document body
I: Integer; // loops thru tags in document body
begin
Result := nil;


if not Supports(Doc, IHTMLDocument2, Document) then
raise Exception.Create('Invalid HTML document');


if not Supports(Document.body, IHTMLElement2, Body) then
raise Exception.Create('Can''t find <body> element');


Tags := Body.getElementsByTagName('*');


for I := 0 to Pred(Tags.length) do
begin


Tag := Tags.item(I, EmptyParam) as IHTMLElement;


if AnsiSameText(Tag.id, Id) then
begin
Result := Tag;
Break;
end;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
elem:= GetElementById(WebBrowser1.Document,'lst-ib') as IHTMLElement;
if Assigned(elem) then
elem.innerHTML:='aseman';


end;


procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
Timer1.Enabled:=True;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin




end;



end.

ابوالفضل عباسی
چهارشنبه 06 آبان 1394, 12:34 عصر
دقیقا کجاش ایراد داره؟:متفکر:

maryam145
چهارشنبه 06 آبان 1394, 12:42 عصر
کلمه ی آسمان و میخوام تو کادر گوگل بندازه که هیچ کلمه ای و نمیاره ؟؟ درواقع میخوام کلیدوازه های مخصوصی بهش بدم خودکارسرچ کنه

یوسف زالی
چهارشنبه 06 آبان 1394, 15:35 عصر
گوگل به شدت به این امر اشراف داره!
زحمت بیهوده نکشید.

maryam145
چهارشنبه 06 آبان 1394, 16:47 عصر
ولی من باید این برنامه و بنویسم اگر چه استفاده نشه ی پروژه اس

یوسف زالی
چهارشنبه 06 آبان 1394, 22:05 عصر
گوگل برای جستجو خیلی راحت Get رو در اختیارتون قرار داده. کافیه URL ساخته شده رو Browse کنید. نیازی به گرفتن Element نیست.

https://www.google.com/search?q=yourword

maryam145
پنج شنبه 07 آبان 1394, 06:40 صبح
ممنون از راهنمایی تون بله کدشو نوشتم ج گرفتم منتها اگه بخوام ی سرس کلیدواژه بدم که ب طور خودکار کلیدواژه ها رو سرچ کنه میشه راهنمایی ام کنین با چ دستوری میتونم این کار و انجام بدم ؟؟؟

ابوالفضل عباسی
پنج شنبه 07 آبان 1394, 12:02 عصر
اگر قصد شما سرچ کردن کلمه ای در گوگل با استفاده از دلفی هست (از طریق web browser)به سایت زیر سربزن کامل توضیح داده:
سایت dr.bob (http://www.drbob42.com/examines/examin33.htm)
یا اگر میخوای از کد زیر استفاده کن:(یکی از برنامه های قدیمی هست:لبخند:)


ses IdHTTP, IdURI, SuperObject;


const
GSA_Version = '1.0';
GSA_BaseURL = 'http://ajax.googleapis.com/ajax/services/search/';


procedure TForm1.GoogleSearch(const Text: string);
var
I: Integer;
RequestURL: string;
HTTPObject: TIdHTTP;
HTTPStream: TMemoryStream;
JSONResult: ISuperObject;
JSONResponse: ISuperObject;
begin
RequestURL := TIdURI.URLEncode(GSA_BaseURL + 'web?v=' + GSA_Version + '&q=' + Text);


HTTPObject := TIdHTTP.Create(nil);
HTTPStream := TMemoryStream.Create;


try
HTTPObject.Get(RequestURL, HTTPStream);
JSONResponse := TSuperObject.ParseStream(HTTPStream, True);


if JSONResponse.I['responseStatus'] = 200 then
begin
ListBox1.Items.Add('Search time: ' + JSONResponse.S['responseData.cursor.searchResultTime']);
ListBox1.Items.Add('Fetched count: ' + IntToStr(JSONResponse['responseData.results'].AsArray.Length));
ListBox1.Items.Add('Total count: ' + JSONResponse.S['responseData.cursor.resultCount']);
ListBox1.Items.Add('');


for I := 0 to JSONResponse['responseData.results'].AsArray.Length - 1 do
begin
JSONResult := JSONResponse['responseData.results'].AsArray[I];
ListBox1.Items.Add(JSONResult.S['unescapedUrl']);
end;
end;


finally
HTTPObject.Free;
HTTPStream.Free;
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
GoogleSearch('Delphi');
end;

ببین به کارت میاد یا نه.(البته برای خودم درست کار میکنه اما به دیگران که کد رو دادم درست کارنکرده حالا اگر درست کار کرد یا نکرد بگو:متفکر:)