Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Проверка сайтов на наличие слова на странице

Ответить
Настройки темы
Delphi - Проверка сайтов на наличие слова на странице

Пользователь


Сообщения: 60
Благодарности: 6

Профиль | Отправить PM | Цитировать


Привет!
Есть хорошая программа для проверки списка сайтов на наличие конкретного слова на страницах этих сайтов XLink Checker 2.0

Решил для себя написать аналог этой программы чтоб добавить дополнительный функционал. Всё сделал кажется правильно но моя программа работает медленные XLink Checker 2.0 и делает много пропусков.

Использовал Delphi7 и Synapse.
Вот код моего потока и синхронизации:

Код: Выделить весь код
procedure TMultiThread.Execute;
begin
  while Work do
    begin
      CS.Enter;
        inc(c);                       
        if c>Form1.MemoLoad.Lines.Count-1 then Work:= false;
      CS.Leave;

      if Work then
      begin
        HTTP:= THTTPSend.Create;
        HTTP.UserAgent:=UA[Random(18)];

       if HTTP.HTTPMethod('GET', Form1.MemoLoad.Lines.Strings[c]) then
       begin
          Response:= TStringList.Create;
          Response.LoadFromStream(HTTP.Document);

          if Pos(Form1.EditFind.Text, Response.Text)<>0 then
            begin
              Rez:=1;
              link:= Form1.MemoLoad.Lines.Strings[c] + ' найдено ' + inttostr(c);
            end
          else
            begin
              Rez:=-1;
              link:= Form1.MemoLoad.Lines.Strings[c] + ' не найдено ' + inttostr(c);
            end;
            Synchronize(Sync);
            HTTP.Free;
            Response.Free;
       end;
      end;
    end;
  dec(Thread);
  if Thread=0 then

  Work:= False;
  Form1.ButtonFindStop.Enabled:=false;
  Form1.ButtonFindStart.Enabled:=true;
end;

procedure TMultiThread.Sync;
begin
case Rez of
  1:begin
      Form1.MemoSave.lines.Add(link);

Form1.LabelFind.Caption:=IntToStr(StrToInt(Form1.LabelFind.Caption)+1);
    end;
 -1:begin
      Form1.LabelNotExist.Caption:=IntToStr(StrToInt(Form1.LabelNotExist.Caption)+1);
    end;
end;
end;
Пожалуйста подскажите что нужно поправить чтоб работало лучше.

Отправлено: 09:31, 11-10-2014

 

Пользователь


Сообщения: 60
Благодарности: 6

Профиль | Отправить PM | Цитировать


Решил проблему самостоятельно. Создал отдельную функцию проверки. В потоках вызываю эту функцию с параметрами а результат обрабатываю в синхронизации.

Скорость очень большая и валидные ссылки не пропускает.
Поделюсь кодом функции может кому-то пригодится.

Код: Выделить весь код
function FindInSiteSourceCode(site, FindText:string):integer;
var
  HTTP:THTTPSend;
  Source: Tstringlist;
begin
  HTTP:= THTTPSend.Create;
  HTTP.UserAgent:=UA[Random(18)];
  Result:= 5;
  if HTTP.HTTPMethod('GET', site) then
  begin
    Source:= Tstringlist.Create;
    Source.LoadFromStream(HTTP.Document);
      if (Source.Text='') then
      begin
        Source.Free;
        HTTP.Free;
        Result:= 0;
      end
      else if pos(FindText, Source.Text)<>0 then
           begin
            Source.Free;
            HTTP.Free;
            Result:= 1;
           end
           else
           begin
            Source.Free;
            HTTP.Free;
            Result:= -1;
           end;
  end;
end;

Отправлено: 21:37, 12-10-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Проверка сайтов на наличие слова на странице

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проверка компа на наличие Бяки Tropikusik Лечение систем от вредоносных программ 2 24-07-2014 22:31
CMD/BAT - Проверка на наличие папок в директории feAre Скриптовые языки администрирования Windows 17 19-11-2013 17:31
CMD/BAT - Проверка на наличие процесса tazik9 Скриптовые языки администрирования Windows 0 23-01-2011 16:56
VBS/WSH/JS - [решено] Проверка на наличие файлй peretc001 Скриптовые языки администрирования Windows 2 20-01-2011 16:00
CMD/BAT - Проверка на наличие какого-то текста Magniy Скриптовые языки администрирования Windows 4 20-04-2010 18:26




 
Переход