Лучшая библиотека / фреймворк для веб-анализа и автоматизации? - PullRequest
1 голос
/ 31 мая 2011

Я задаю довольно высокоуровневый вопрос, чтобы, надеюсь, узнать некоторые о подводных камнях перед тем, как отправиться в путь. Я планирую приложение, которое будет посещать определенные веб-сайты для сбора, обработки и форматирования табличных данных. Затем он должен каким-то образом предпринять определенные действия веб-браузера (перейти по ссылке, опубликовать форму, нажать кнопку и т. Д.) В ответ на собранные данные, предоставив обратную связь, если что-то не получится в процессе. Основным требованием является то, что он должен легко адаптироваться к различным страницам, т. Е. Параметры данных и меню на веб-страницах в основном одинаковы, но отформатированы по-разному. Формат страницы может быть изменен без уведомления, поэтому обнаружение и обработка ошибок должны быть хорошими.

Я думал о том, чтобы перейти на C # и просто использовать класс WebBrowser в .NET, поскольку он, по крайней мере, имеет хорошие возможности для манипулирования DOM и запуска JavaScript без какой-либо дополнительной настройки. Тем не менее, я достаточно независим от языка. Главное, что меня беспокоит, - это то, что WebBrowser, похоже, не настолько хорошо разработан для фактического выполнения действий (щелчков мышью и т. Д.). Мне интересно, будет ли это кусать меня в задницу. Кроме того, это является плюсом, если программа ведет себя неотличимо от человека-пользователя, если смотреть со стороны сервера.

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

1 Ответ

1 голос
/ 31 мая 2011

Я предлагаю вам взглянуть на механизацию в сочетании с BeautifulSoup, это Perl или Python, но это именно то, что вам нужно.

...