Delphi парсинг html
Автор Hunter342 задал вопрос в разделе Другие языки и технологии
Пишу парсер HTML на Delphi и получил лучший ответ
Ответ от Алексей Кузьминов[гуру]
Вы бы попытались всё же использовать IHtmlDocument3. Ведь именно из-за такого кода происходит торможение программы в десятки и сотни раз.
Вы что-то неверно понимаете в интерфейсах. К сожалению, не имею возможности проверить Delphi 10 Seattle и HTML библиотеку, которую вы используете. Но для объекта нормально иметь несколько интерфейсов. И я бы очень удивился, что не существует объекта, который ОДНОВРЕМЕННО поддерживает IHtmlDocument2 и IHtmlDocument3.
ЗЫ
Как код будет работать на разных платформах, зависит от реализации Html-библиотеки (то есть от связки платформа+версия).
Ваш код - заглушка, если переданный Document: IDispatch не держит IHtmlDocument3 (проверить это обязательно!). И только в этом смысле он имеет право на существование.
ЗЗЫ
я бы написал как-то так:
Result := nil;
Tags := Doc.all as IHTMLElementCollection; // гарантируйте Doc <> nil где-то выше, иначе такой вызов - это бред
if not Assigned(Tags) or (Id = '') then Exit; // любой as может неожиданно вернуть nil
for I := 0 to Tags.length do begin
Tag := Tags.item(i, EmptyParam) as IHTMLElement;
if Assigned(Tag) and (Tag.id = id) then begin
Result := Tag; Break;
end;
end;
if Assigned(Tag) and (Tag.id <> '') then...
Нужно создать алгоритм сортировки методом Хоара
Почитай комментарии к этой статье:
http:// подробнее...
вопрос ГЛупый но всё таки подскажите идею для написания программы
Сам вопрос поставлен неправильно. То что ты сделаешь, продастся? кто у тебя это купит? как ты
подробнее...
Я одного не понимаю. Почему Пасха каждый год в разные дни справляется. Определенного дня нет?
Светлое Христово Воскресение - подвижный праздник, дата которого зависит от дня весеннего
подробнее...
Что такое инициативные письма?
По функциональному признаку деловые письма делятся на:
Письма-ответы – ответы на инициативные
подробнее...
Язык программирования. С чего начать? помогите (вопрос знающим) хочу научиться взлому и д.р.
Взлом - статья в сфере киберпреступлений, за простой взлом программы или анкеты вконтакте можно
подробнее...
!! Вопрос для программистов (Нужен совет)
Твою судьбу можешь решить только ты сам. Смотря какое программирование ты хочешь изучать. Если
подробнее...
Организовать кнопку прервать в Delphi
Заведите глобальную переменную, например NeedStop: Boolean;
var
Form1: TForm1;
подробнее...
Как получить html код страницы в Android Studio, Java?
Для таких случаев, скорее всего потребуется определенная программа, но мне кажется, проще
подробнее...