PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » PureBasic для Windows » Как управлять браузером или InternetExplorer.Application мёртв ?


Как управлять браузером или InternetExplorer.Application мёртв ?

Сообщений 1 страница 13 из 13

1

Доброй день. Может кто подсказать за InternetExplorer.Application ?
Поддержка ослика была прекращена в прошлом году , до этого кое как работала .
Возникла необходимость парсить современные сайты.
Как это реализовать в современных реалиях из под пурика ?
Библиотека PB.Ex_WebGadget не завелась .
Selenium WebDriver ставить и прикручивать костыли не хочется.
Может есть у кого какие идеи ?

0

2

Есть COMatePLUS.

0

3

Если можно чуть подробнее . COMatePLUS позволяет управлять современным поддерживаемым браузером ?
Поддержка ie полностью прекращена и большинство современных сайтов с ним не работают.

0

4

Может есть у кого простой пример работы с Selenium WebDriver из пурика ? или может есть библиотека удобная ?

0

5

Василий_1985
Я попробовал примеры автоматизации IE из AutoIt3, всё работает. Win10x64 1809.
Добавление какого либо браузера не означает выпиливание IE движка, тогда и CHM должен поломаться, ведь он использует движок IE для отображения страниц.

Отредактировано AZJIO (10.11.2022 18:05:17)

0

6

Дело в том что ie работает даже на windows 10 , проблема в том что он не открывает сайты по https
например https://t.me/ не открывает и многие сайты прекратили поддержку ie  , соответственно спарсить что мне нужно через
ie я не смогу, даже если подменить идентификатор браузера скрипт на сайте не хочет корректно крутится и подгружать что нужно .
Пробую selenium подружить с пуриком , если получится - напишу , вдруг кому пригодится.
Про AutoIt3 совсем забыл , спасибо за напоминание , попробую это хоть какой-то выход .

0

7

Василий_1985
на форуме AutoIt3 есть модуль FF, но я ни когда не пробовал его. В поиск пробуй "Firefox".

0

8

Василий_1985 написал(а):

Возникла необходимость парсить современные сайты.

Вроде парсится тележка простым запросом.

Код:
#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)

0

9

не оно

0

10

Спасибо огромное , применимо к телеге работает , правда куча работы ручками . К сожалению не работает если контэнт грузится динамически с помощью js .
Хотелось полноценно управлять современным браузером как это делает человек , заполнять поля данными , кликать кнопки итд .
Чтобы решение работало с любым сайтом . Чтоб парсер данных например авито укладывался в 100 строк кода и это с автосменой прокси.
Попробую расковырять Selenium WebDriver что там он хочет на вход и написать простой врапер , чтоб можно было работать на уровне DOM
в стиле getElementsByTagName() а не вот это вот всё )

0

11

Василий_1985 написал(а):

Хотелось полноценно управлять современным браузером как это делает человек , заполнять поля данными , кликать кнопки итд .

Понимаю, что вы хотите. Визуальная красота, это конечно приятно. Selenium, вроде должен обеспечить ваши потребности. Хотя, на сколько я понял(а может и нет), как заявлено, это "драйвер". Чтобы использовать эту разработку, у вас уже должен быть установлен движок браузера. Т.е. если вы создаёте для себя, это одно, если для клиентов, это чуть другое.
Лично я, предпочитаю обычный нативный парсинг. И всё это вполне осуществимо. И getElementsByTagName() и другой функционал. Да, потрудиться надо, но в моём понимании, это того стоит. Я ценю опыт.
Сервер ведь понимает, чем мы пользуемся на стороне клиента, только по тем данным, которые мы ему отправляем.
Сайт принимает информацию и делает на её основе обратный отклик. Поэтому, это просто POST, GET и другие запросы. Динамическая загрузка через JS, это тоже самое, поэтому решаемо. Даже в Selenium, вам придётся вычислять теги и исследовать запросы динамической подгрузки для разных сайтов.
Кстати, сегодня тестировал Cefau3, но это для AutoIt, у меня запустился. Код там старый, но открытый, лежит на GitHub, возможно и под новые версии cef можно адаптировать, а также под PB, при желании.

0

12

Спасибо огромное всем кто не прошёл мимо . Мне удалось реализовать необходимый потенциал.
Достаточно было установить модуль под мой браузер (я использовал хром) и установить вот это

https://www.purebasic.fr/english/viewto … p;start=15

Пример в самом низу может кому пригодится .
В каком то смысле это врапер для ленивых , подсматриваем в браузере атрибуты элемента ,
и пишем в стиле getElementsByTagName() . Все мои хотелки там есть и даже больше .

InternetExplorer.Application мёртв . Да здравствует Selenium WebDriver !!!

0

13

Василий_1985 написал(а):

Все мои хотелки там есть и даже больше

:cool: Успехов!

0


Вы здесь » PureBasic - форум » PureBasic для Windows » Как управлять браузером или InternetExplorer.Application мёртв ?