Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Чтение и выделение текста веб-страницы по БД


Автор: Bison 28.9.2009, 14:20
Возникла задача:
как можно прочитать веб-страницу и выделить номера, которые предварительно вбили в БД? Допустим, вбил в БД номера телефонов, затем открываю веб-страницы других сайтов, нужно чтобы данные номера телефонов были выделены скажем, красным цветом.

Автор: Данкинг 28.9.2009, 14:26
Цитата(Bison @  28.9.2009,  15:20 Найти цитируемый пост)
как можно прочитать веб-страницу и выделить номера, которые предварительно вбили в БД?

Хотя бы просто сохранить её на винт и распарсить в зависимости от своих целей.

Автор: Bison 28.9.2009, 14:53
как можно сделать? сделать какой нибудь инструмент (кнопку) в браузере? сохранение должно быть в фоновом режиме, т.е. не заметно для пользователя.

Автор: Данкинг 28.9.2009, 15:17
Цитата(Bison @  28.9.2009,  15:53 Найти цитируемый пост)
сделать какой нибудь инструмент (кнопку) в браузере? 

При чём здесь браузер вообще? smile 

Автор: Bison 28.9.2009, 15:20
Этапы такие:
1. забивается база определёнными параметрами.
2. при открытии страниц через браузер, этот "самый плагин" просматривает страницу и выделяет текст сравнивая с данными в БД.

Автор: Snowy 28.9.2009, 16:11
Думаю, проще всего это будет сделать на уровне прокси-сервера.
Делаем прокси-сервер, все htm*, php и т.п. файлы парсим, находим искомые комбинации и выделяем их цветом (например с помощью span, как яндекс).
Альтернативный вариант - JavaScript (как гугль)
Располагаем на своём сервере скриптик, который будет лазать по загруженной странице и выделять нужное, а прокси-сервером вставляем ссылочку на него в хедеры страниц.
Впрочем, со скриптом - это уже в другой раздел.

Автор: Bison 28.9.2009, 22:28
не-а.
вы меня неправильно поняли. smile 
распишу со стороны юзера:
1. вбиваю в базу какие то данные, которые нам нужны (например, телефоны)
2. открываю браузер, кликают на одну кнопку, он включает наш инструмент.
3. открываю сайты, и там высвечивается информация по базе.

неужели нельзя написать компонент на дельфах, который будет приаттачен к браузеру, любому.

Автор: Snowy 29.9.2009, 10:56
К любому? Конечно нет.
Под каждый браузер своё.
Поэтому и советую делать на уровне прокси сервера - так просто правим траффик, независимо от браузера и операционки.
Если такой вариант не устраивает - тогда в раздел JavaScript - его кушают практически все браузеры.
Без привязки к браузеру только JavaScript, либо модификация траффика.
Третий вариант - свой браузер на любом движке и меняй в нём что хочешь.

Автор: Bison 30.9.2009, 06:44
2 Snowy
А если сделать след.образом:
- юзер ставит себе плагин GreaseMonkey на Firefox
- пишет скрипт на JavaScript, добавляет в GreaseMonkey
А БД можно сделать в виде массива, либо подключить реальную СУБД. Через этот скрипт *.js будет происходить анализ страницы в реальном времени.

Возможен вариант?

Автор: Snowy 30.9.2009, 10:16
Не думаю, что любой браузер поддерживает интеграцию js? как плагина.
С файрфоксом, IE или оперой особых проблем не возникнет.
А вот как отнесётся к этому какой-нибудь сафари или хром?
Привязка к какому-либо конкретному браузеру, не многим лучше, чем по быстрому нашлёпать свой на движке TWebBrowser или моззилы.
Вот автоподшивка на уровне трафика будет работать в любом случае.
Но хозяин барин.
Если такой вариант пользователю подходит - никто не запрещает.
Вопрос только на уровне универсальности.
Есть возможность сказать пользователю: "Тут нужно поставить то-то и то-то и работать только в файрфоксе" - делай без вопросов.
Если нет возможности выставить такие требования и не факт, что пользователь захочет юзать файрфокс, а не его любимый сафари, то стоит подумать над универсальностью.
Создать http прокси на Indy 10 с автоврезкой своего html кода - дело нескольких часов, если не умеешь и нужно разбираться. За рабочий день - без проблем.
Если умеешь - пара часов от силы на написание и тестирование.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)