¿Hay alguna herramienta gratuita que pueda leer una página web determinada y hacer una captura de pantalla de la misma?Tome una captura de pantalla de una página web en Java
Respuesta
para construir sobre dos de las respuestas anteriores:
haciendo que el HTML en Java a continuación, guardar a una imagen - Unos pocos HTML basado en Java hace que existe, todos con diferentes conjuntos de inconvenientes. El más común es el que built in. Esto es bastante simple y solo puede renderizar HTML bastante básico. Lo más interesante que conozco es The Flying Saucer Project. Esto puede hacer que XHTML sea bastante complejo, pero deberá convertir HTML antes de poder usarlo (JTindy puede ayudar aquí). Tomar un componente Swing y crear una imagen es bastante simple, solo debe pasar un objeto BufferedImage
s graphics y pasarlo al método Swing Components paint. Luego splatándolo con ImageIO.
Una gran ventaja de esto sería que el renderizador sería sin cabeza. La desventaja es que no sería un renderizado perfecto y carecería de complementos.
La segunda opción requiere para iniciar un navegador web, hacer ejercicio en el que es y luego tomar una captura de pantalla. Opcionalmente, es posible que también desee quitar todos los menús de Firefox/IE/Opera/etc. dejándolo con solo una imagen. Para obtener las dimensiones del navegador web, la opción más simple sería iniciarlo en pantalla completa. La otra opción sería usar algo como el componente JDICs browser para incluirlo como parte de la aplicación Java. Luego, podría especificar dónde se está renderizando HTML en la pantalla y luego simplemente usar Robot para crear una captura de pantalla de esa área.
La gran ventaja de esto es que proporcionará una representación perfecta (para un navegador determinado). Las dos desventajas es que requeriría un código nativo (o al menos el uso de un componente nativo) y no podría ser sin cabeza¹.
1) Puede utilizar un búfer de cuadros virtuales. Pero eso está fuera de Java.
Hay un navegador en Eclipse. ¿Has experimentado con eso? –
Aparte de como usuario no lo he hecho (las API de SWT me asustan). Pero un buen punto, eso es probablemente mejor que el predefinido integrado y mejor soporte HTML que Flying Saucer. –
JTidy solo recientemente ha visto contribuciones recientes. También puede probar HtmlUnit (.sourceforge.net). +1 para la referencia del navegador JDIC, es un proyecto realmente ambicioso y necesita más apoyo. –
uso de selenio-rc
Usted puede utilizar el método createScreenCapture en awt.Robot. Este método le permite especificar qué parte de la pantalla capturar. Por lo tanto, aún deberá determinar las coordenadas de la ventana que contiene la página web que desea capturar.
Para hacer que el HTML en Java puro, que puede echar un vistazo a platillo volante.
http://code.google.com/p/flying-saucer//
Se hace XML/XHTML/CSS 2.1
creo que sólo funciona en XML válido o XHTML, por lo que si usted necesita para representar HTML no válido, utilice una herramienta como neko para limpiar arriba antes de pasarlo al platillo volante.
que tuvieron mejores resultados con selenio WebDriver utilizando un VirtualFramebuffer y Firefox binario. Esto se prueba bajo ubuntu. Es necesario tener instalado Firefox y XVFB
Primero instale Firefox y uso de este dispositivo virtual:
aptitude install xvfb firefox
compilar y ejecutar esta clase, /tmp/screenshot.png abierta después
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxDriver;
public class CaptureScreenshotTest
{
private static int DISPLAY_NUMBER = 99;
private static String XVFB = "/usr/bin/Xvfb";
private static String XVFB_COMMAND = XVFB + " :" + DISPLAY_NUMBER;
private static String URL = "http://www.google.com/";
private static String RESULT_FILENAME = "/tmp/screenshot.png";
public static void main (String[] args) throws IOException
{
Process p = Runtime.getRuntime().exec(XVFB_COMMAND);
FirefoxBinary firefox = new FirefoxBinary();
firefox.setEnvironmentProperty("DISPLAY", ":" + DISPLAY_NUMBER);
WebDriver driver = new FirefoxDriver(firefox, null);
driver.get(URL);
File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(RESULT_FILENAME));
driver.close();
p.destroy();
}
}
Puedo confirmar que esto funciona excelentemente (mac OS) –
yeap, pero use/usr/X11/bin/xvfb – z0mb1ek
@janning ¿Es posible obtener URL de la ventana actual seleccionada usando Java? Bcoz mi página web tiene pestañas múltiples y cada Cuando hago clic en cada una de las pestañas, la URL correspondiente debe pasarse como campo de URL – chopss
No es Java , pero después de venir aquí, es lo que terminé usando, así que creo que vale la pena mencionarlo.Con PhantomJs puede ejecutar una versión sin cabeza de webkit, y luego acceder a la funcionalidad a través de un servidor web de mangosta integrado, que puede manejar las solicitudes de capturas de pantalla, y almacenarlas localmente. Puede usar Java para realizar la solicitud, y la respuesta puede tener la URL de la imagen en el servidor, para que también pueda tomar eso:
- 1. Tome una captura de pantalla de una página web con JavaScript?
- 2. ¿Cómo tomar una captura de pantalla de una página web?
- 3. Tome una captura de pantalla con Silverlight 5/xna
- 4. Toma de captura de pantalla de una página web programáticamente
- 5. Tomar captura de pantalla de una página web (remota) programáticamente
- 6. Android tome la captura de pantalla programáticamente
- 7. Obtenga una captura de pantalla de una página de ASP.Net
- 8. Tome una captura de pantalla a través de una secuencia de comandos python. [Linux]
- 9. captura de pantalla de una página web y obtener imagen (ASP.NET)
- 10. Simulando la captura de pantalla como una cámara web?
- 11. crear una captura de pantalla de la página web usando html2canvas (no se puede inicializar correctamente)
- 12. ¿Cómo evito que Android tome una captura de pantalla cuando mi aplicación pasa al segundo plano?
- 13. Captura de impresiones de pantalla en Java
- 14. Captura de pantalla en android
- 15. Pegar una imagen en una página web
- 16. Tome capturas de pantalla del control WebBrowser
- 17. ¿Cómo tomar una captura de pantalla con unidad HTML?
- 18. Obtenga una captura de pantalla de una aplicación específica
- 19. Cómo tomar una captura de pantalla de la página HTML procesada
- 20. Captura de una captura de pantalla de un video incrustado usando C#
- 21. crear toda captura de pantalla página utilizando QWebPage
- 22. Ejecutar una aplicación Java en una página web
- 23. ¿Es técnicamente posible tomar una captura de pantalla de un sitio web mediante programación?
- 24. Vista previa de captura de pantalla de la página web de Google
- 25. Captura de pantalla en Haskell?
- 26. conversión de página web en imagen jpeg usando java
- 27. Pantalla de captura
- 28. Convertir URL en captura de pantalla (script)
- 29. Cómo tomar una captura de pantalla de toda la página web, en lugar de lo que se muestra en la pantalla
- 30. ¿Cómo puedo hacer una captura de pantalla en Windows PowerShell?
¿Va a disparar un navegador, abrir la página y capturarlo? el sitio web o ¿le gustaría que el sitio web se represente mediante el código java y que se escriba en la imagen? – quosoo