Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2022, 21:44   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Получить ссылки из исходника страницы

Доброго времени суток!
Подскажите, пожалуйста, как получить все ссылки из исходного кода страницы?
Интересует способ поиска по http:// и https:// без "href=" и тому подобного.
Shouldercannon вне форума Ответить с цитированием
Старый 05.11.2022, 09:33   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Например функцией Pos
FaTaL вне форума Ответить с цитированием
Старый 05.11.2022, 18:29   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Если в коде страницы встречаются такие ссылки https://test.ru/ то тут всё понятно
Код:
  while Pos('https://', Source) > 0 do
  begin
    Delete(Source, 1, Pos('https://', Source) + Length('https://') - 1);
    Memo2.Lines.Add(Copy(Source, 1, Pos('/', Source) - 1));
  end;
Но попадаются ссылки вида https://test.ru. В данном случае код забирает весь ненужный текст до первого попавшегося /.
Решил проблему таким образом. Здесь не все символы по которым нужно делать обрезку.
Код:
function GetUrl(txt: String): String;
const
  Simbols = '"&''/?\';
var
  I: Integer;
  Passed: Boolean;
begin
  Result := '';
  for I := 1 to Length(txt) do
  begin
    Passed := False;
    if not Passed then
    begin
      if not Simbols.Contains(txt[I]) then Passed := True;
    end;
    if Passed then Result := Result + txt[I] else Break;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Source, s: String;
begin
  Source := Memo1.Text;
  while Pos('https://', Source) > 0 do
  begin
    Delete(Source, 1, Pos('https://', Source) + Length('https://') - 1);
    s := Copy(Source, 1, Length(Source));
    Memo2.Lines.Add(GetUrl(s));
    Application.ProcessMessages;
  end;
end;

Последний раз редактировалось Shouldercannon; 05.11.2022 в 21:24.
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо получить все ссылки со страницы вКонтакте Dux Работа с сетью в Delphi 9 28.03.2015 12:38
Получить ссылки со страницы UKRtortik Общие вопросы Delphi 31 12.06.2014 15:45
ссылки на страницы Ol'ga PHP 3 18.02.2013 14:12
Как прикрепить ссылки на страницы Зод HTML и CSS 3 20.01.2013 02:32
Получить имя файла из ссылки(в конце ссылки нет имени файла) Человек_Борща Работа с сетью в Delphi 11 05.06.2011 15:15