powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / OleVariant достать элtмент HTML
11 сообщений из 11, страница 1 из 1
OleVariant достать элtмент HTML
    #39626506
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как достать href=
Код: html
1.
<div class="title description-title"> <h3 class="h3 fader description-title-h3"> <a class="description-title-link" id="1069740354" href="/samara/avtomobili/renault_logan_2017_1069740354" 



как мне достать /samara/avtomobili/chevrolet_niva_2006_1146496591 ?

Прилагаю код который достает строку которую написал выше
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
procedure TForm1.Button4Click(Sender: TObject);
var
  doc: OleVariant;
  el: OleVariant;
  i: Integer;
  IdHTTP1 : TIdHTTP;
  t:string;

begin
IdHTTP1 := TIdHTTP.Create( nil );

  idhttp1.Request.UserAgent:='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36';
  idhttp1.HandleRedirects:=true;
    t:=idhttp1.get('https://www.avito.ru/samara/avtomobili?p=2&view=list');
  memo1.Lines.Add(t);
  doc := coHTMLDocument.Create as IHTMLDocument2;
  doc.write(t);
  doc.close;
  for i := 0 to doc.body.all.length - 1 do
  begin
    el := doc.body.all.item(i);
    memo2.Lines.Add(el.outerHTML);
   if(el.tagName = 'DIV') and (el.className = 'title description-title') then
   memo3.Lines.Add(el.outerHTML);
  end;
end;
...
Рейтинг: 0 / 0
OleVariant достать элtмент HTML
    #39626519
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
venza,

что то типа
Код: pascal
1.
el.nodeValue = 'href'
...
Рейтинг: 0 / 0
OleVariant достать элtмент HTML
    #39626529
666z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
venza,

Код: pascal
1.
el.getAttribute('href')
...
Рейтинг: 0 / 0
OleVariant достать элtмент HTML
    #39626548
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
666z,

Код: pascal
1.
2.
   if(el.tagName = 'DIV') and (el.className = 'title description-title') then
   memo3.Lines.Add(el.getAttribute('href'));



could not convert variant of type null into type string
...
Рейтинг: 0 / 0
OleVariant достать элtмент HTML
    #39626564
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
666z,

Ошибка, не соображу либо пустая либо в текст как то перевести нужно...?!
...
Рейтинг: 0 / 0
OleVariant достать элtмент HTML
    #39626597
666z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
venza,

Атрибут то у тега <A>, а ты берешь элемент <DIV>
ищи по id = 1069740354
...
Рейтинг: 0 / 0
OleVariant достать элtмент HTML
    #39626613
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
666z,

Увидел, но все равно не соображу...

раз
Код: html
1.
<div class="title description-title">


два
Код: html
1.
<h3 class="h3 fader description-title-h3">


три
Код: html
1.
<a class="description-title-link" id="1069740354" href="/samara/avtomobili/renault_logan_2017_1069740354" 


Класс получается А тогда if (el.tagName = 'a') или вот тут запутался (el.className = 'а')
А как тогда искать по id? id всегда разные будут. Нельзя ли сразу достать href?
...
Рейтинг: 0 / 0
OleVariant достать элtмент HTML
    #39626627
666z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
venza,

Код: pascal
1.
if(el.tagName = 'A') and (el.className = 'description-title-link') then memo3.Lines.Add(el.getAttribute('href'));



или

Код: pascal
1.
memo3.Lines.Add(doc.getElementById('1069740354').getAttribute('href'));



но если Id будет меняться, то конечно 1 вариант
...
Рейтинг: 0 / 0
OleVariant достать элtмент HTML
    #39626632
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
666z,

Спасибо огромное, но блин по всякому пробовал и так пробовал, но не работало, скопировал у тебя заработало, спасибо =)
...
Рейтинг: 0 / 0
OleVariant достать элtмент HTML
    #39626635
venza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
666z,

Код: html
1.
2.
  if(el.tagName = 'DIV') and (el.className = 'title description-title') then
   memo3.Lines.Add(el.getAttribute('href'));



моя ошибка
...
Рейтинг: 0 / 0
OleVariant достать элtмент HTML
    #39626880
LoneFast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
venzaкак мне достать /samara/avtomobili/chevrolet_niva_2006_1146496591 ?Полагаю вы не достанете это, а достанете полный URL, а именно то достать наверное не получится.
Хотя если только попробовать выдернуть из innerHTML...

Поищите статьи как пользоваться селектором через querySelector*.
И пригодится это:
Код: pascal
1.
2.
3.
4.
Function IsVariantNULL(Variable: OleVariant): BooLean;
Begin
Result:=(VarIsNull(Variable) Or VarIsEmpty(Variable));
End;
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / OleVariant достать элtмент HTML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]