Захват рендеринга веб-страницы - PullRequest
2 голосов
/ 19 апреля 2010

Я начну с описания самой проблемы. Вместо того, чтобы искать проблему, я ищу лучшее решение. У меня есть страница asp.net, на которой есть куча изображений и ссылка под ней. Каждое изображение влияет на последнюю версию ссылки под ним.

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

Теперь я хотел бы знать, может ли этот рендеринг быть выполнен традиционным программированием, не заинтересованным в использовании каких-либо утилит. Я заинтересован в том, чтобы попробовать это. Решение не обязательно должно быть на основе C #, я готов попробовать на любом другом языке. Потому что это дает мне возможность учиться.

Спасибо.

Ответы [ 5 ]

4 голосов
/ 08 августа 2010

Вам, вероятно, стоит взглянуть на moz-headless-screenshot

Вы должны иметь возможность встраивать нужные вам функции.

http://blog.mozilla.com/ted/2010/07/29/moz-headless-screenshot/

он также предоставил пример встраиваемого клиентского приложения moz-headless-screenshot. Это простой инструмент командной строки, который принимает URL, размер изображения и имя выходного файла и создает PNG-скриншот веб-страницы.

1 голос
/ 06 августа 2010

Вы должны посмотреть на снимки браузера:

http://browsershots.org/

Они делают то, что вы хотите сделать для множества различных браузеров. Это даже с открытым исходным кодом.

0 голосов
/ 11 августа 2010

Мы успешно использовали ACA WebThumb ActiveX Control (http://www.acasystems.com/en/web-thumb-activex/)) для захвата частей или всей веб-страницы на веб-сервере, а затем для записи их в файл, просто передавая URL-адрес. Он работает быстро достаточно для нашей нужды.

Я не знаком с IECapt, но вы, возможно, захотите взглянуть на него.

0 голосов
/ 10 августа 2010

Одним из способов является использование веб-скребка IRobotSoft. Вы можете создать робота, который будет каждый час переходить по URL-адресу, и захватывать всю веб-страницу как изображение с помощью функции CapturePage (файл изображения).

Я не уверен, будет ли он лучше, чем IECapt.

0 голосов
/ 06 августа 2010

Нет простого решения для того, что вы просите. Это потому, что рендеринг HTML, CSS и Flash на самом деле очень сложный процесс.

Если у вас достаточно времени для написания кода, вы можете использовать движок Gecko (который поддерживает Firefox) или другое ядро ​​веб-браузера с открытым исходным кодом (например, Dillo) для отображения страницы на пользовательском холсте. Затем сохраните этот холст в файл. Если вы не реализуете поддержку плагинов для браузера, вы не получите Flash таким образом. Вы можете попробовать использовать Gnash или тому подобное. Удачи с этим.

Я не знаю проекта с открытым исходным кодом, который уже делает это. Это было бы здорово, хотя :-). Если вы пишете что-то, пожалуйста, отправьте это миру; было бы здорово иметь инструмент «получить скриншот этого URL».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...