![]() |
![]() ![]() ![]() | |
|
Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|| Форумы Здесь вы можете задать свой вопрос и наверняка получите ответ |
ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
| ||
![]() | ||
|
Чтобы не потерять эту дискуссию, сделайте закладку
« предыдущая ветвь | форум | следующая ветвь »
TwebBrowser и прочее. Подключаться к браузерам
ВладОшин © (29.06.20 12:07)Накопилось много всяких парсеров, которые работают с IHtmlDocument2
Который получается либо из компонента TwebBrowser, либо через запуск самого браузера , через класс TInternetExplorer (SHDocVw), и соединение с ним.
Очень удобно парсить DOM через классы в unit MSHTML
Но вот всё больше сайтов начинают оказывать IE. Просто ничего, пустой экран белый или предупреждение - только Хром/FF нужен.
Вопрос.
Как бы что-то такое поставить/скачать, что бы было также просто достучаться до модели DOM загруженной странички?
ВладОшин © (29.06.20 12:16) [1]пробовал TChromium, 3 версия исходников с хабра.
Работает. Но странно, при закрытии AV вылетает. И не понял как DOM получить.
например, IE не заходит
https://vk.com
заходит и чистый экран на webim.ru (там статистика)
У них API есть, я его изучил, накатал тесты, а там меньше, чем менеджер видит из браузера. Написал в поддержку - сказали, все правильно, все по API не дают..
Нужен хороший метод парсинга в общем, по зарез )
megavoid © (30.06.20 16:48) [2]nodejs + selenium
ВладОшин © (03.07.20 08:51) [3]
> megavoid © (30.06.20 16:48) [2]
> nodejs + selenium
Сложно? Сами пробовали?
ВладОшин © (03.07.20 09:04) [4]не, конечно, почитал сам. Но тут как.. хотелось бы всё это сделать как службу, и сразу заливать в БД mssql.. В общем, все как сейчас работает и только письма получать сайт1 - Ok|Error, сайт2 - Ok|Error
Можно так с selenium?
megavoid © (08.07.20 16:02) [5]Несложно, именно так и парсю сайты последние несколько лет. Только мне больше нравится puppeteer, а не selenium.
Node умеет mssql. Node, грубо - это как delphi, только javascript, а selenium или puppeteer - это как TChromeBrowser.
Единственно что, не уверен, умеет ли node делать службы.
ВладОшин © (14.01.21 18:32) [6]TChromium, 4 версия (CEF4)
Вроде нормально все встало, все сайты грузятся без проблем. Осталось за малым - научиться DOM оттуда выбирать )
KSergey © (15.01.21 10:15) [7]а я чета по-старинке все, html-текст получил - нашел нужные куски между нужными фрагментами "текста" - вытащил...
наверное не гибко там или еще что... но просто и надежно, да? и на любом языке какой знаешь
Styx © (15.01.21 18:03) [8]Сейчас половина сайтов в HTML-е ничего полезного не отправляют... Только ссылку на JavaScript, фактически, а информация динамически скриптом уже грузится...
ВладОшин © (16.01.21 10:07) [9]
> KSergey © (15.01.21 10:15) [7]
А если сначала надо залогиниться? ) Причем, хитрый сайт вешает эвенты, что просто post отправить ему не катит. Нужно что бы в контроле буковки появлялись по очереди..
А еще есть, как Styx пишет правильно, js и прочие аяксы.
И я понимаю, что все сводится то просто к трубе от сокета до сокета, где байтики гоняются туда-сюда, и можно просто так и делать - гонять байтики в правильных соглосованиях.. Но это же руки волосатые сразу станут, все это в ручном режиме гонять )
ВладОшин © (19.01.21 09:09) [10]в общем, DOM можно обходить как и ранее, получив html
procedure TForm1.btn1Click(Sender: TObject);
begin
chrmwndw1.ChromiumBrowser.OnTextResultAvailable := TextResultAvailable;
chrmwndw1.ChromiumBrowser.RetrieveHTML(chrmwndw1.ChromiumBrowser.Browser.MainFra me);
end;
procedure TForm1.TextResultAvailable(Sender: TObject; const aText: ustring);
begin
mmo1.Text := aText;
chrmwndw1.ChromiumBrowser.OnTextResultAvailable := nil;
end;
Теперь надо понять как педалируются там кнопки и вводится текст в контролы )
Разрешается использование тегов форматирования текста:
версия для печати
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)
|
![]() ![]() ![]() |