Доброй день. Может кто подсказать за InternetExplorer.Application ?
Поддержка ослика была прекращена в прошлом году , до этого кое как работала .
Возникла необходимость парсить современные сайты.
Как это реализовать в современных реалиях из под пурика ?
Библиотека PB.Ex_WebGadget не завелась .
Selenium WebDriver ставить и прикручивать костыли не хочется.
Может есть у кого какие идеи ?
Как управлять браузером или InternetExplorer.Application мёртв ?
Сообщений 1 страница 13 из 13
Поделиться110.11.2022 02:42:10
Поделиться210.11.2022 13:23:24
Есть COMatePLUS.
Поделиться310.11.2022 14:16:19
Если можно чуть подробнее . COMatePLUS позволяет управлять современным поддерживаемым браузером ?
Поддержка ie полностью прекращена и большинство современных сайтов с ним не работают.
Поделиться410.11.2022 14:18:04
Может есть у кого простой пример работы с Selenium WebDriver из пурика ? или может есть библиотека удобная ?
Поделиться510.11.2022 18:03:20
Василий_1985
Я попробовал примеры автоматизации IE из AutoIt3, всё работает. Win10x64 1809.
Добавление какого либо браузера не означает выпиливание IE движка, тогда и CHM должен поломаться, ведь он использует движок IE для отображения страниц.
Отредактировано AZJIO (10.11.2022 18:05:17)
Поделиться610.11.2022 23:34:07
Дело в том что ie работает даже на windows 10 , проблема в том что он не открывает сайты по https
например https://t.me/ не открывает и многие сайты прекратили поддержку ie , соответственно спарсить что мне нужно через
ie я не смогу, даже если подменить идентификатор браузера скрипт на сайте не хочет корректно крутится и подгружать что нужно .
Пробую selenium подружить с пуриком , если получится - напишу , вдруг кому пригодится.
Про AutoIt3 совсем забыл , спасибо за напоминание , попробую это хоть какой-то выход .
Поделиться710.11.2022 23:54:33
Василий_1985
на форуме AutoIt3 есть модуль FF, но я ни когда не пробовал его. В поиск пробуй "Firefox".
Поделиться811.11.2022 02:53:33
Возникла необходимость парсить современные сайты.
Вроде парсится тележка простым запросом.
#RegEx = 0 ; примерная регулярка для парсинга блоков с вступительным текстом Define NewsPattern$ = "(?si)<div\s+class="+Chr(34)+"tgme_widget_message_text\s+js-message_text"+Chr(34)+".+?<a.+?</a><b>(.+?)</div>" CreateRegularExpression(#RegEx, NewsPattern$) InitNetwork() Define NewMap Header$() Header$("ContentType") = "plaintext" ; впарим серверу UserAgent по современней Header$("UserAgent") = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0" ; будем парсить хабр в телеге HttpRequest = HTTPRequest( #PB_HTTP_Get, "https://t.me/s/habr_com", "", 0, Header$() ) If HttpRequest If HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode) = "200" Define Response$ = HTTPInfo(HTTPRequest, #PB_HTTP_Response) If Response$ ; на этом этапе страница уже прочиталась ; теперь распарсим её регуляркой If IsRegularExpression(#RegEx) If ExamineRegularExpression(#RegEx, Response$) While NextRegularExpressionMatch(#RegEx) Debug RegularExpressionGroup(#RegEx, 1) Debug "========================================" Wend EndIf Else Debug RegularExpressionError() EndIf EndIf EndIf FinishHTTP(HTTPRequest) Else Debug "Ошибка создания запроса" EndIf
Но, это только первая загрузка страницы. Если речь идёт о подгрузке динамического контента, то нужно исследовать запросы в инструментах разработчика в браузере (вкладка Network) и имитировать их.
Отредактировано Webarion (11.11.2022 03:07:45)
Поделиться1011.11.2022 16:01:45
Спасибо огромное , применимо к телеге работает , правда куча работы ручками . К сожалению не работает если контэнт грузится динамически с помощью js .
Хотелось полноценно управлять современным браузером как это делает человек , заполнять поля данными , кликать кнопки итд .
Чтобы решение работало с любым сайтом . Чтоб парсер данных например авито укладывался в 100 строк кода и это с автосменой прокси.
Попробую расковырять Selenium WebDriver что там он хочет на вход и написать простой врапер , чтоб можно было работать на уровне DOM
в стиле getElementsByTagName() а не вот это вот всё )
Поделиться1112.11.2022 00:49:32
Хотелось полноценно управлять современным браузером как это делает человек , заполнять поля данными , кликать кнопки итд .
Понимаю, что вы хотите. Визуальная красота, это конечно приятно. Selenium, вроде должен обеспечить ваши потребности. Хотя, на сколько я понял(а может и нет), как заявлено, это "драйвер". Чтобы использовать эту разработку, у вас уже должен быть установлен движок браузера. Т.е. если вы создаёте для себя, это одно, если для клиентов, это чуть другое.
Лично я, предпочитаю обычный нативный парсинг. И всё это вполне осуществимо. И getElementsByTagName() и другой функционал. Да, потрудиться надо, но в моём понимании, это того стоит. Я ценю опыт.
Сервер ведь понимает, чем мы пользуемся на стороне клиента, только по тем данным, которые мы ему отправляем.
Сайт принимает информацию и делает на её основе обратный отклик. Поэтому, это просто POST, GET и другие запросы. Динамическая загрузка через JS, это тоже самое, поэтому решаемо. Даже в Selenium, вам придётся вычислять теги и исследовать запросы динамической подгрузки для разных сайтов.
Кстати, сегодня тестировал Cefau3, но это для AutoIt, у меня запустился. Код там старый, но открытый, лежит на GitHub, возможно и под новые версии cef можно адаптировать, а также под PB, при желании.
Поделиться1212.11.2022 02:26:58
Спасибо огромное всем кто не прошёл мимо . Мне удалось реализовать необходимый потенциал.
Достаточно было установить модуль под мой браузер (я использовал хром) и установить вот это
https://www.purebasic.fr/english/viewto … p;start=15
Пример в самом низу может кому пригодится .
В каком то смысле это врапер для ленивых , подсматриваем в браузере атрибуты элемента ,
и пишем в стиле getElementsByTagName() . Все мои хотелки там есть и даже больше .
InternetExplorer.Application мёртв . Да здравствует Selenium WebDriver !!!
Поделиться1312.11.2022 03:06:28
Все мои хотелки там есть и даже больше
Успехов!