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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2014, 19:06   #21
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Есть такая функция, ConvertHTML скормишь ему часть HTML где есть ссылки
Он найдет текст между тегов, правда придется еще поработать ручками. Пробуй вообщем
ZuBy вне форума Ответить с цитированием
Старый 11.06.2014, 19:38   #22
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Код:
HTTPSend := THTTPSend.Create;
StringList := TStringList.Create;
RegExpr := TRegExpr.Create;
RegExpr.Expression := '<\s*a(\s+.*?>|>).*?<\s*/\s*a\s*>';
HTTPSend.HTTPMethod('GET', edit1.text);
StringList.LoadFromStream(HTTPSend.Document);
if RegExpr.Exec(StringList.Text) then
repeat
edit1.text:=RegExpr.Match[0];
Memo1.Lines.Add(edit1.text);
until not RegExpr.ExecNext;
StringList.Free;
RegExpr.Free;
HTTPSend.Free;
Сделал так. Но ссылки получает такого вида:

Цитата:
<a href="http://home.yandex.ru/?from=prov_main" class="b-link i-bem b-sethome__link b-sethome_redirectable_yes"onclick="r eturn{'b-link':{}}">Сделать&nbsp;Ян декс&nbsp;стартовой&nb sp;страницей</a>
Какая правильная регулярка будет для ссылок?
UKRtortik вне форума Ответить с цитированием
Старый 11.06.2014, 23:02   #23
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

UKRtortik,

Код:
RegExpr.Expression := 'откуда парсим(.*?)докуда парсим';
в твоем случае шаблон будет таким:

Код:
RegExpr.Expression := '<a href="(.*?)"';

и еще

Код:
edit1.text:=RegExpr.Match[0];
тебе надо использовать RegExpr.Match[1]; - ВАЖНО!

Последний раз редактировалось FleXik; 11.06.2014 в 23:06.
FleXik вне форума Ответить с цитированием
Старый 11.06.2014, 23:19   #24
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

блин я же говорил, что кавычки могут быть любые, двойные или одинарные....
UKRtortik вне форума Ответить с цитированием
Старый 11.06.2014, 23:22   #25
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
блин я же говорил, что кавычки могут быть любые, двойные или одинарные....
а тебе больше ничего кроме как готового кода не дать? сам разбирайся, куда копать теперь ты знаешь.

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


Код:
if Pos('<a href="', StringList.Text)<>0 then // если двойные кавычки
RegExpr.Expression := '<a href="(.*?)"'
else
if Pos('<a href=''', StringList.Text)<>0 then // если одинарные кавычки
// тут RegExpr.Expression на одинарные кавычки, додумуй сам.

Последний раз редактировалось FleXik; 11.06.2014 в 23:26.
FleXik вне форума Ответить с цитированием
Старый 11.06.2014, 23:28   #26
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

так тоже не очень хорошо, на сайте могут быть и такие и такие ковычки.
UKRtortik вне форума Ответить с цитированием
Старый 11.06.2014, 23:33   #27
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
так тоже не очень хорошо, на сайте могут быть и такие и такие ковычки.
это твоя буйная фантазия? я сколько сайтов не парсил (а их было много) - никогда не было и одинарных и двойных кавычек на одном сайте, были или одинарные или двойные, + про hRef - это тоже прикол такой? опять же я перепарсил много сайтов и на всех из них href писало всегда с маленькой буквы и все последующие буквы после h были тоже с маленькой буквы.
FleXik вне форума Ответить с цитированием
Старый 11.06.2014, 23:35   #28
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
никогда не было и одинарных и двойных кавычек на одном сайте
Если бы не было, я бы не говорил))
UKRtortik вне форума Ответить с цитированием
Старый 12.06.2014, 09:49   #29
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Здря ты от MSHTML отказался... Выше по ссылке пример как раз получает коллекцию ссылок из страницы без каких либо проблем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.06.2014, 11:58   #30
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
это твоя буйная фантазия?
Нет, это стандарт HTML. Можно как одинарные так и двойные. Зависит от того, кто формировал HTML. а теги и аттрибуты можно вообще вот так писать: AhReF, StROng и браузер скушает
Или JS скрипты для не стандартной обработки и отрисовки документа, что очень осложняет жизнь левым не браузерным чувакам.

Все что парсит не браузер - то его проблемы

Цитата:
так тоже не очень хорошо, на сайте могут быть и такие и такие ковычки.
Больше условий делайте.

Последний раз редактировалось Человек_Борща; 12.06.2014 в 12:04.
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ссылки на страницы Ol'ga PHP 3 18.02.2013 14:12
Как прикрепить ссылки на страницы Зод HTML и CSS 3 20.01.2013 02:32
Получить имя файла из ссылки(в конце ссылки нет имени файла) Человек_Борща Работа с сетью в Delphi 11 05.06.2011 15:15
Ссылки при просмотре страницы Demon_gms HTML и CSS 6 25.08.2010 23:53
Вывести ссылки из html страницы. 3dgraph Общие вопросы .NET 5 30.07.2009 20:49