Возможно ли определить позицию (нижний колонтитул, боковая панель) элемента HTML при разборе документа?

#php #html #regex #parsing #dom

#php #HTML #регулярное выражение #синтаксический анализ #dom

Вопрос:

Я пытаюсь разработать скрипт (на php), который анализирует веб-страницы, и задаюсь вопросом, возможно ли определить положение изображения или ссылки на странице, независимо от того, расположено ли оно а) вверху / внизу страницы или б) слева / справа и верхняя половина / нижняя половина страницы. Мне было интересно, существует ли какой-либо точный метод анализа HTML и точного определения положения этих элементов, поскольку они будут отображаться на странице.

Комментарии:

1. @Dagon Доступно ли уже существующее решение для определения положения элемента при синтаксическом анализе, тогда, если да, не могли бы вы указать мне правильное направление … извините, если я упускаю что-то очевидное здесь

Ответ №1:

Нет никакого метода доказательства дурака. Потому что разные браузеры будут отображаться по-разному на разных экранах. Эта процедура лучше всего подходит для использования javascript, запущенного в клиентском браузере.

По какой причине вам нужна позиция на серверах?

Несколько способов его реализации (с головы до ног)…

1) Запустить IE или firefox (или любой браузер) в фоновом режиме, чтобы получить местоположение с помощью javascript, который затем передаст его в php-скрипты?

2) Загрузить и скомпилировать библиотеку веб-сайта и написать php-модуль (плагин) для обработки этого?

3) Должна ли позиция вычисляться в javascript на стороне клиента и использовать AJAX для передачи позиции обратно на сервер?

4) Переделать веб-страницу, чтобы нам не нужно было заботиться о позиции?

Комментарии:

1. Если Javascript является единственным надежным способом, то какой метод вы бы порекомендовали для автоматической эмуляции браузера и запуска javascript для извлечения данных, есть ли такая возможность? Я бы хотел, чтобы скрипт автоматически запускался на моем сервере, не полагаясь на мой физический браузер для получения данных, так есть ли какой-нибудь способ сделать это автоматически на стороне сервера для эмуляции браузера

2. Ну, javascript запускается в браузере после того, как страница была отрисована, поэтому он сможет получить позиции. Однако вам нужно будет учитывать разные браузеры, которые будут использовать ваши клиенты, потому что разные браузеры отображают вещи по-разному. (известный IE7 ….)

3. Зависит от используемого вами сервера. Если это Windows, и вы хотите использовать IE, просто создайте IE из PHP и заставьте его отображать страницу, а затем получите позицию. Если вы хотите использовать Chrome или Safari, вы можете изучить возможность использования webkit.net библиотека и написание программы на .net для получения позиции

4. Если это Linux, вам может потребоваться изучить, как некоторые браузеры могут быть автоматизированы. Потому что в Windows у вас есть OLE и ActiveXs, но я не уверен в linux.

5. Спасибо, проведу некоторые исследования, чтобы разобраться, сервер rus на Linux, поэтому нужно выяснить, как автоматизировать процесс с помощью этой ОС