Шаблоны и практики для веб-скрейпинга в .Net (C #) [закрыто]

9

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

Я уже использую Html Agility Pack и знаю о Tidy, если это необходимо.

Есть ли какие-либо другие технологии, о которых я должен знать?

Существуют ли рекомендуемые шаблоны для быстрой настройки в случае изменения внешнего веб-приложения? Я предполагаю инкапсулировать проверку ответов как некоторый тип стратегии или подобный шаблон, который может быть легко разделен / подключен по мере необходимости, но любые конкретные предложения были бы хорошими.

jlnorsworthy
источник
Об этом, какое-нибудь пошаговое руководство или Начало работы - Быстрый старт, который можно завершить за 15-20 минут? Я привожу вам хороший пошаговый пример руководства, например, berniecook.wordpress.com/2013/01/13/… Я хотел бы быстро охватить несколько предположений, прежде чем мы начнем: установить (реквизиты, требуются инструменты), настроить, работает быстро Целью будет образец «готов и готов». Может быть, лучше образец реального приложения.
Kiquenet

Ответы:

4

Если вы хотите автоматизировать навигацию по внешнему веб-сайту, как это делает пользователь, Watin идеально подходит для этого. Он будет управлять веб-браузером через объектную модель и имеет широкий спектр возможностей синтаксического анализа, построенных на DOM (а также не-DOM-способности, которые вы можете найти в браузере, включая скрипты).

Вот ссылка:

Watin.org

dreadwail
источник
Watin - это ваша любимая библиотека JavaScript для C #.
Человек
Любое окончательное решение с полным примером приложения с исходным кодом ? ИМХО, лучшие образцы для минимизации кривой обучения - это реальные приложения с полным исходным кодом и хорошими шаблонами и практиками
Kiquenet
0

Если вам нужна возможность быстро вносить изменения для отслеживания изменений во внешнем веб-приложении, я бы посмотрел на сценарии. Если вы предпочитаете C #, посмотрите на компиляцию кода на лету. Если вы используете базу данных, код скрипта может храниться там, иначе обычные текстовые файлы тоже будут работать.

Что касается паттернов GoF, стратегия - это выбор учебника.

Другой «шаблон», который следует учитывать, особенно если учесть, что вы проверяли ответы, используя их для выбора следующего действия, - это конечный автомат . Например, состояния для клиента веб-почты могут быть «не вошли», «на входящие», «чтение сообщения», «редактирование ответа» и т. Д. Вы должны выполнить некоторые действия в зависимости от состояния, затем на основе В ответ выберите следующее состояние.

хрустящий
источник
0

Шаблон действительно должен исходить из проблемы, но вот несколько вариантов:

Если вас в основном интересует текущая стоимость разработки / раздражение: шаблон стратегии (уже упоминалось) - используйте его для реализации интерфейсов уровня компонента и используйте методологию динамического связывания для разрешения конкретных стратегий (реализаций). Контейнер IOC (мне нравится Autofac в эти дни) будет работать хорошо.

Если вам нужно поддержать вышеупомянутое плюс, необходимо масштабировать: Map Reduce (кто-нибудь знает хороший m + r fx для .net?).

sbrenton
источник
-1

В зависимости от того, насколько сильно изменяется веб-страница, это может быть сложно. Вы можете хранить список стандартных регулярных выражений в БД, а затем, когда одно из них больше не работает, вы можете перебирать базовый набор с другими, пока не нажмете одно. Тогда вы захотите пометить это для будущего использования.

Джош О'Брайан
источник