2009-02-26 2 views
12

Мне часто приходится делать некоторые простые скриншоты экрана для внутренних целей (т. Е. Сторонняя служба, которую я использую, только публикует отчеты через HTML). Сейчас у меня есть как минимум два или три случая. Я мог бы использовать apache httpclient и создать весь необходимый код очистки экрана, но это требует времени. Вот мой обычный процесс:Супер-быстрые методы скрещивания экрана?

  1. Открыть Карл Прокси на веб-сайте и посмотреть, что происходит.
  2. Начните писать код Java, используя Apache HttpClient, имея дело с куки-файлами, несколькими запросами
  3. использовать HTML-код Jericho для обработки синтаксического разбора HTML-кода.

Мне жаль, что я не могу просто «записать свою сессию» быстро, а затем параметризировать вещи, которые варьируются от сеанса к сеансу. Представьте себе, просто используя Charles, чтобы захватить весь запрос HTTP, а затем параметризировать соответствующую строку запроса или post params. Voila У меня есть многоразовый http-скрипт.

Есть ли что-нибудь, что делает это уже? Помню, когда я работал в большой компании, раньше использовался инструмент Load Runner от Mercury Interactive, который, по сути, имел хороший способ записи сеанса http и его повторного использования (для целей тестирования). Этот инструмент, к сожалению, очень дорог.

+0

Спасибо за все ваши ответы. Я думаю, что все они были весьма ценными и помогут другим, столкнувшимся с одной и той же дилеммой. Я решил попробовать Twill, потому что он кажется очень простым языком и потому, что его в Python является кросс-платформенным. Многие из предложенных инструментов выглядели неплохо, хотя некоторые из них казались Windows-специфическими, а другие, похоже, имели более крутую кривую обучения. – Ish

ответ

5

Я бы также посмотреть на селене и/или BeautifulSoup, если вы Желаем использовать Python. Там также хороший инструмент тестирования Twill для автоматического тестирования веб-сайта, который может сделать то, что вы хотите. Он также написан на Python и имеет API Python, но есть также упрощенный командный язык, который вы можете использовать с ним. Вот пример из документации Twill ::

setlocal username <your username> 
setlocal password <your password> 

go http://www.slashdot.org/ 
formvalue 1 unickname $username 
formvalue 1 upasswd $password 
submit 

code 200  # make sure form submission is correct! 
+0

Спасибо, что ознакомили меня с Twill. Я думаю, он обращается к тому, что мне нужно. Несмотря на отсутствие возможности записи, я думаю, что простота его языка сценариев позволит мне создать очень быстрый код для очистки экрана. Поэтому я выбрал его как ответ на щедрость. – Ish

+0

Я также выбрал ваш ответ из-за быстрого примера кода, который показал мне, как легко его использовать. – Ish

4

Вы не упомянули, что вы хотите использовать для этого; Одним из решений является просто «сценарий» вашего веб-браузера с использованием таких инструментов, как Selenium, если повторение ваших действий веб-браузером является приемлемым решением. Вы можете использовать Selenium IDE, чтобы записать то, что вы делаете, а затем изменить параметры.

9

HtmlUnit - это браузер без браузера, написанный на Java. Мы используем его для некоторых чрезвычайно сложных, сложных веб-страниц, и это, как правило, очень хорошая работа.

Чтобы упростить работу, вы можете запустить ее в Jython. Полученная программа читает больше как расшифровку того, как можно использовать браузер, чем тяжелая работа.

3

Мне жаль, что я не могу просто «записать свою сессию» быстро, а затем параметризовать вещи, которые варьируются от сеанса к сеансу.

Если у вас есть тестовая версия Visual Studio, это функция веб-тестирования делает это точно. Если вы не используете VS или хотите автономный инструмент, у меня был большой успех с OpenSpan. Это больше, чем просто веб, это приложения для Windows и Java!

3

Selenium будет моим первым выбором, так как IDE позволяет вам делать много вещей простым способом, «записывая» сеанс для вас. Но, если вас не устраивает то, что он предоставляет, вы также можете использовать модуль Python под названием Beautiful Soup, чтобы программно пройтись по веб-сайту.

3

CoScripter

http://coscripter.research.ibm.com/coscripter

Упрощая веб-процессов.

CoScripter система для записи, автоматизацию и совместное использование процессов выполняется в сети просматривать г, такие как печать фотографий в Интернете, с просьбой провести отпуск по почте, или проверка времени прибытия рейса. Инструкции для процессов: , записанные и сохраненные в легко читаемом тексте здесь, на веб-сайте CoScripter, , чтобы каждый мог их использовать. Если у вас возникают проблемы с веб-процессом , проверьте, есть ли у кого , написанный на нем CoScript!

Wget

Чтобы быстро тянуть вниз содержимого используйте Wget:

wget -r -n -k -w 2 foo.com 

Затем разобрать HTML локально.

Twill

В дополнении к селену, вы можете также проверить саржа, командная строка компаньон:

http://twill.idyll.org/

1

Я использовал DomInspector для ручной проверки сайта интереса к параметризуете его структура. Затем простой Apache HttpClient и ручной синтаксический анализатор, используя эту параметризованную структуру. В принципе, я мог бы извлечь любую информацию с любого сайта автоматически с небольшим изменением параметров. Это похоже на то, как работает парсер SAX, все, что вам нужно сказать, - это какая последовательность тегов, которые вы хотите начать захватывать данные. Например, у google есть довольно стандартный формат результатов поиска. Итак, вы просто запускаете третье вхождение «tab» и начинаете получать текст с первого «div» до конца '/ div'

1

iMacro is но для Firefox я предполагаю, что он не очень хорош в производительности, но может обрабатывать самые сложные ситуации и легко записывать материал.

+0

Я использовал iMacro. Он отлично работает при переносе страницы, и он запоминает имя пользователя, пароль ... и т. Д., Как если бы вы делали это вручную. Однако для этого потребуется Firefox. Поэтому, если вы думаете о запуске вашего скребка на безголовом (Gnome, KDE) сервере без оконного менеджера, вам не повезло. – un33k

1

Internet Explorer поддерживает объекты поддержки браузера (BHOs). Они могут получить доступ к IE 'HWND (дескриптор окна), и там легко очистить пиксели. Интерфейс COM IWebBrowser2 также предоставляет вам доступ к HTTP-запросам, и вы можете вернуть проанализированный HTML-документ через IWebBrowser2::Document = IHTMLDocument/IHTMLDocument2 /IHTMLDocument3.

1

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

1

Я не могу лично ручаться за него, но есть бесплатный плагин firefox: DejaClick Я установил его на днях и сделал некоторые исправления записи, воспроизведения и редактирования скриптов с ним. Он вытащил их без большой кривой обучения. Если ваша конечная цель - показать что-то в веб-браузере, тогда этого должно быть достаточно.

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

http://www.dejaclick.com/

1

Я бы проверить BADBOY. Он запускает браузер IE, но вы можете буквально щелкнуть запись и записать всю свою активность.

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

Badboy Software

2

Попробуйте iOpus iMacros http://www.iopus.com/imacros/. Я использую это для очистки экрана, и его работа очень хорошо, и скорость тоже очень хороша. Это не так дорого.

Он будет записывать сценарий во время просмотра. Затем вы можете параметризовать сценарий и выполнить с помощью Java, .net и т. Д.

1

Я бы посмотрел Fiddler, судя по вашим запросам, он сделает все, что вам нужно.

2

У Python и Perl есть модуль под названием Mechanize (WWW :: Mechanize for perl), который делает его легким, чтобы программная обработка браузера (заполнение форм, обработка файлов cookie и т. Д.).

Итак, Python + BeautifulSoup (большой HTML/XML парсер) + механизировать (функции браузера) = супер легкий/быстрый скребок

+1

Быстрый вопрос, Может механизировать ручку AJAX? – un33k

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