Программа предназначена для сбора доменов с поисковых систем. Программа разрабатывалась для личного использования моей команды. Имеет модульный вид, вы можете интегрировать мои библиотеки куда угодно. Ниже я предоставлю описание для использования. Вам необходимо только правильно подключить и обращаться к функциям. Программа и библиотеки разработаны строго для x64 систем, если вам нужны x32 - напишите в личные сообщения.
В программе доступно 2 поисковых системы:
- Yandex
Threads - кол-во потоков. Не используйте больше 1, если в списке мало строк, есть возможность поймать бан.
Описание методов:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var DLLHandle: THandle;
PWC : array[0..255] of WideChar;
Clear: TStringList;
s: WideString;
PluginName: string;
YandexSearch: function (Phrase: WideString; count: Int32): WideString; safecall;
GoogleSearch: function (Phrase: WideString; count: Int32): WideString; safecall;
Init: function: WideString; safecall;
FWorker : IOmniParallelLoop<integer>;
begin
Form1.Memo2.Clear;
FWorker:=Parallel.ForEach(0, Form1.Memo1.Lines.Count-1)
.NoWait.OnStop(
procedure (const task: IOmniTask)
begin
task.Invoke(
procedure begin
Clear:=TStringList.Create;
Clear.Clear;
Clear.Text:=Form1.Memo2.Lines.Text;
RemoveDuplicates(Clear);
Form1.Memo2.Clear;
Form1.Memo2.Text:=Clear.Text;
FreeAndNil(Clear);
FWorker:=nil;
end
);
end
);
FWorker.NumTasks(Form1.SpinEdit2.Value).Execute(
procedure (const value: integer)
begin
case Form1.RadioGroup1.ItemIndex of
0: begin // Yandex
PluginName:=ExtractFilePath(Application.ExeName)+'Yandex.dll';
StringToWideChar(PluginName, PWC, PluginName.Length+1);
DLLHandle := LoadLibrary(PWC);
if DLLHandle = 0 then exit;
@YandexSearch := GetProcAddress(DLLHandle, 'YandexSearch');
try
s:=YandexSearch(Form1.Memo1.Lines[value], Form1.SpinEdit1.Value);
Form1.Memo2.Lines.Add(s);
except
end;
FreeLibrary(DLLHandle);
@YandexSearch:=nil;
end;
1: begin // Google
PluginName:=ExtractFilePath(Application.ExeName)+'Google.dll';
StringToWideChar(PluginName, PWC, PluginName.Length+1);
DLLHandle := LoadLibrary(PWC);
if DLLHandle = 0 then exit;
@GoogleSearch := GetProcAddress(DLLHandle, 'GoogleSearch');
try
s:=GoogleSearch(Form1.Memo1.Lines[value], Form1.SpinEdit1.Value);
Form1.Memo2.Lines.Add(s);
except
end;
FreeLibrary(DLLHandle);
@GoogleSearch:=nil;
end;
end
end);
end;