2008-09-17 8 views
23

Я пытаюсь оптимизировать некоторые из наших задач на своем месте работы, и кажется, что довольно много времени наших разработчиков потрачено на выполнение полумеханических задач в Интернете (в частности, редактирование интернет-магазинов, основанные на интерфейсах). Таким образом, я изучал некоторые решения, которые позволят выполнять эти задачи с помощью сценариев, поскольку я полагаю, что это может сэкономить нам немного времени на каждую задачу. Поэтому, прежде чем я действительно начал копаться в любом из них, мне было просто интересно, есть ли у сообщества Stack Overflow какие-либо рекомендации относительно того, какое решение для веб-сценариев/макросов было бы лучшим.Каков наилучший способ создания веб-скриптов/веб-макросов?

Вот требования:

  • должны иметь возможность взаимодействовать с веб-формы (не только загрузку страницы и выскабливание файл - скрипт должен изменять элементы управления в веб-форму, а затем представить эту форму)
  • Формы, которые мы должны изменить, являются безопасными формами, поэтому решение для скриптинга должно быть в состоянии справиться с этим (т.е. для нас бесполезно иметь невероятно мощное решение для сценариев, если человеку придется сидеть и смотреть его вручную переадресовать каждые несколько минут)
  • Было бы действительно, действительно, действительно предпочтительнее, если бы это было возможно локальные файлы объявлений и выполнять некоторые основные замены/манипуляции с ними (например, было бы неплохо иметь список переменных или какой-либо HTML-код в текстовом файле, а затем заменить скрипт «STORENAME» на это имя магазина до того, как он вставляет код в форму).

Здесь являются скриптовые решения, которые находятся на моем радаре до сих пор (я на самом деле не смотрел ни в одну из них, хотя я играл с CHICKENFOOT):

  • Chickenfoot
  • iMacros for Firefox
  • Libwww жемчужно
  • Libwww для UNIX и C (при поиске Libwww для Perl я наткнулся на это, что я не знал, существовали до сих пор)
  • более «общий» макро решение, как AutoHotKey

Кто-нибудь здесь Stack Overflow пробовал любое из этих решений? Если да, то что вам понравилось или не понравилось в них? Может ли кто-нибудь порекомендовать тот, которого нет в списке? (Это далеко не единственный или исчерпывающий список). Мне бы очень хотелось автоматизировать многие из наших механических процессов, и я надеюсь, что сообщество переполнения стека поможет нам, поэтому мы сможем надеяться избежать этой значительной части работы :).

редактировать: Re: платформа - Мы в первую очередь WindowsXP терминалов на работе, но 1) у нас есть несколько тестовых компьютеров Mac, поэтому OS X является жизнеспособным вариантом, и 2) если это означало бы автоматизировать много из этих задач я буду строить Linux-бокс, если это необходимо. Таким образом, платформа практически не является проблемой.

ответ

2

Мне очень нравится watir framework (работает на рубине) - программируемый, простой, использует IE для автоматизации Интернета (и поэтому вы получаете истинное поведение браузера). Конечно, это только Windows - вы не указали, что вы используете.

Мы использовали watir для автоматизации наших тестов webapp, и мы очень довольны.

2

Несколько предложений:

Редактировать: Я предполагаю, что они будут действовать на веб-страницах, содержащих данные, которые вы хотите передать формам.

+0

Greasemonkey по-видимому не подходит для решения этой проблемы. Greasemonkey отлично подходит для «когда такая и та же страница загружается, запустите этот javascript», тогда как то, что я ищу, является чем-то вроде «введите это в эту форму, затем нажмите« Отправить », затем перейдите в эту другую форму, введите этот другой материал и т. д. " – Whisker 2008-09-17 23:36:31

+0

Я думал, что если вы сможете получить данные, которые хотите отправить на веб-страницу, вы можете использовать GreaseMonkey, чтобы отправить его в форму. (Я предполагаю, что вам понадобится сделать кросс-сайт xmlhttprequest) – 2008-09-18 01:44:43

+0

Я никогда не думал об этом; надобность в обращении проблемы. Хотя, если бы я был в точке, где это был серьезный вариант, я бы, вероятно, сначала посмотрел на Chickenfoot, так как он поддерживает некоторые из GM API и больше подходит для моей ментальной модели проблемы («перейдите по этому URL-адресу, нажмите это, отправьте это ») – Whisker 2008-09-20 13:49:12

1

Если вы используете libwww-perl, то не останавливайтесь на достигнутом. Используйте WWW :: Mechanize, который представляет собой оболочку вокруг LWP, которая требует взаимодействия с браузером. Недостаток: он не обрабатывает JavaScript (пока).

WWW::Mechanize home page

2

Я на самом деле большой поклонник CHICKENFOOT, который я начал использовать много в последнее время для обеспечения возможности создания сценариев для Zotero, другое расширение Firefox.

3

Другой вариант - использование AutoIT + Firefox + mozrepl + FF.au3. Это мощно, поскольку AutoIT работает за пределами браузера (это фантастический инструмент автоматизации сам по себе), поэтому вы можете работать с помощью отправки нескольких форм браузера без потери контекста. Затем скрипт FF.au3 позволяет вам просто управлять Firefox через AutoIT3.

1

мы используем инструмент iMacros вы упомянули с хорошим успехом:

Firefox + iMacros

Обратите внимание, что он также поставляется как свободный IE аддон! Самое замечательное в том, что точно такие же макросы работают в обоих браузерах. IMHO очень полезен для быстрого и легкого веб-тестирования и общей автоматизации веб-сайтов.

Tim

2

Использование:

Firefox + iMacros для выборки:
Перейти на страницу вы хотите (например, yahoo.com), приносят IMacro в фокусе, хит запись и поиск некоторый текст. Когда отображается первая страница, сохраните страницу в файле.

Теперь у вас есть страница, которую вы хотели.
На этом этапе вы делаете выборку.
Сохраните макрос и укажите ему имя. В следующий раз вы можете просто запустить макрос, который вы только что сохранили.

Затем очистить HTML код, который вы получили с помощью этого:

# this is php, do the proper thing in the language of your choice 
# one or more spaces is equal to one space, remove tab, return ...etc. 
return ereg_replace(' +', ' ', trim(preg_replace("/(\r\n|\r|\t|\n|\'|\")/s", '', $string) 


Теперь у вас есть чистый HTML-страницу с одной линии, длинный.
Теперь вы можете вырезать и нарезать, как хотите, с помощью regEx.

Что нужно знать:
Вы можете запустить макрос в светлячок через cronjob (командную строку), если вам нужна полная автоматизация.

1

Мое впечатление от IMacros - это вы need to pay, чтобы разблокировать множество положительных героев, поэтому я пошел с Chickenfoot. К сожалению, список рассылки Chickenfoot в последнее время очень тихий, поэтому я не уверен в своем будущем ...

0

Я использую iMacro/.net для проекта извлечения данных. Мне нравится простота написания сценариев для iMacros, что важно, поскольку приложение может иметь до 60 + сайтов для извлечения данных. Для этого проекта накладные расходы на запуск iMacros стоят сэкономленного времени разработки. Это не идеальное решение, но это один из способов взаимодействия с данными другого веб-сайта, предполагая, что они не обеспечивают надлежащего интерфейса. Оптимальная часть заключается в том, что я создал небольшой кластер серверов скребок iMacros, чтобы помочь распределить нагрузку. Прямо сейчас пользователи могут обращаться к серверам приложений через веб-сайт для запросов adhoc, но в конце концов мне хотелось бы, чтобы он превратился во что-то более потоковое.

3

Я большой поклонник Селена

http://www.seleniumhq.com

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

также: кто-нибудь знает хороший макрос, который работает с Flash ?? Не похоже, что javascript может пересечь эту линию.

3

iMacros для Firefox бесплатный, и это все, что вам нужно! Он автоматизирует любую активность браузера и просто работает! Он также может читать/писать внешние формы заполнения данных и многое другое. Я большой поклонник этого дополнения Firefox!

1

WatiN, .net версия Watir. Мне это очень нравится.

0

Там уже несколько вариантов питона:

  • основной urllib2 пост поддержки
  • Mechanize (первоначально, 9 лет назад, портирован из Perl, очень улучшилось после этого) и его оберток:

Вот блог короткого и ясно (хотя немного устаревшие) сравнение, как же простая задача может быть выполнена с использованием различной LIBS: http://blog.spritecloud.com/2010/01/posting-forms-with-python/

Обратите внимание, что Clientform также упоминается там часть механизировать ныне ,

0

Это можно сделать с помощью функции плагина iMacro и Notepad ++ Macro для Firefox.

Существует учебник вы можете прочитать в моем блоге:

http://xianlin.wordpress.com/2014/02/05/how-to-use-iopus-imacros-notepad-web/

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

Смежные вопросы