автогенерация скрепления экрана HTTP кода Java - PullRequest
6 голосов
/ 08 января 2009

Мне нужно просмотреть некоторые данные с веб-сайта, потому что они недоступны через их веб-сервис. Когда мне нужно было сделать это ранее, я сам написал код Java, используя клиентскую библиотеку HTTP Apache для выполнения соответствующих HTTP-вызовов для загрузки данных. Я разобрался с соответствующими вызовами, которые мне нужно было сделать, нажимая на соответствующие экраны в браузере, используя веб-прокси Charles для регистрации соответствующих HTTP-вызовов.

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

Спасибо, Дон

Ответы [ 5 ]

4 голосов
/ 09 января 2009

Я бы также добавил +1 для HtmlUnit, поскольку его функциональность очень мощная: если вам нужно поведение, «как если бы настоящий браузер копал и использовал страницу», это определенно лучший вариант. HtmlUnit выполняет (если вы этого хотите) Javascript на странице.

В настоящее время он имеет полнофункциональную поддержку для всех основных библиотек Javascript и будет выполнять код JS, используя их. В соответствии с этим вы можете получить указатели на объекты Javascript на странице программно в вашем тесте.

Если, однако, область действия, которую вы пытаетесь сделать, меньше, больше похоже на чтение некоторых элементов HTML и где вы не очень заботитесь о Javascript, тогда достаточно использовать NekoHTML . Это похоже на JDom , обеспечивающее программный, а не XPath-доступ к дереву. Возможно, вам придется использовать Apache HttpClient для получения страниц.

3 голосов
/ 08 января 2009

В блоге manageability.org есть запись, в которой перечислены все инструменты для очистки веб-страниц для Java. Тем не менее, мне кажется, что я не могу достичь этого прямо сейчас, но я нашел текстовое представление в кэше Google здесь .

2 голосов
/ 07 декабря 2010

Я бы сказал, что лично мне нравится использовать HtmlUnit и Selenium в качестве двух моих любимых инструментов для скрапинга экрана.

2 голосов
/ 08 января 2009

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

0 голосов
/ 08 января 2009

Инструмент под названием Grinder позволяет вам записать сеанс на сайт, пройдя через его прокси. Вывод: Python (работает в Jython).

...