Как захватить посещенные URL и их html любыми браузерами - PullRequest
3 голосов
/ 10 января 2011

Я хочу найти достойное решение для отслеживания URL-адресов и HTML-контента, которые посещают пользователи, и предоставления пользователю дополнительной информации.Решение должно принести минимальное влияние на конечных пользователей.

Я не хочу писать плагины для разных браузеров.Это трудно поддерживать.Я не принимаю метод прокси, так как я не хочу изменять какие-либо настройки прокси пользователя.Мое приложение написано на C # и ориентировано на Windows.Лучше всего, если решение может поддерживать и другие ОС.

Основываясь на своих исследованиях, я нашел следующие методы, которые выглядят для меня подходящими, но все они имеют свои недостатки, я не могу определить, какая из нихbest.

  1. Использование WinPcap WinPcap перехватывает все TCP-пакеты без изменения каких-либо пользовательских настроек, но требует только установки WinPcap, что для меня приемлемо.Но у меня есть два вопроса: а.как конвертировать TCP пакет в URL и HTML б.Это действительно влияет на производительность?Я не знаю, является ли сниффер весь TCP-трафик издержками для этого требования.

  2. Поиск файлов истории для разных браузеров. Этот способ выглядит как упрощенный, но мне интересно, если решение стабильно,Я не уверен, что браузер будет стабильно писать историю и когда он пишет.Мое приложение будет отображать информацию до того, как пользователь покинет текущую страницу.Решение не будет работать для меня, если браузер пишет в файл истории, когда пользователь закрывает браузер.

  3. Используйте FindWindow или объект accessiblity или COM-интерфейс, чтобы найти элемент пользовательского интерфейса, содержащий URL-адрес, который, по моему мнению, не является полным, например, Chrome покажет только URL активной вкладки, но невсе они.Другим недостатком является то, что мне нужно запросить URL-адрес в другой раз, чтобы получить его HTML-контент.

Любые комментарии или предложения приветствуются.Кстати, я не делаю никаких шпионских программ.Приложение пытается найти все RSS-каналы с веб-страницы и показать их конечным пользователям.Я легко могу сделать это в плагине для браузера, но я действительно хочу поддерживать несколько браузеров с одним пользовательским интерфейсом.Спасибо.

1 Ответ

0 голосов
/ 17 октября 2013

Хотя это очень старый пост, я подумал просто дать ввод.

Подход 1 к WinPcap - лучший.Это будет работать для любого браузера, даже встроенного браузера любого другого установленного приложения.Подход также будет менее ресурсоемким.

Существует библиотека Pcap.Net, которая имеет парсер HTTP.Вы можете создать поток http и использовать его httpresponsedatagram для анализа тела, которое может быть использовано вашим приложением.

Эта ссылка помогла мне лучше понять - Восстановление сеанса Tcp с Winpcap

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...