Pregunta

Quiero tirar de todo el archivo de código fuente HTML de una página web en Java (o Python o PHP si es más fácil en esos idiomas para mostrar). Sólo deseo para ver el código HTML y escanear a través de él con unos pocos no métodos- editar o manipular de cualquier manera, y realmente deseo que yo no lo escribo en un nuevo archivo a menos que no hay otra manera. ¿Hay clases de biblioteca o métodos que hacen esto? Si no es así, ¿hay alguna manera de ir sobre esto?

¿Fue útil?

Solución

En Java:

URL url = new URL("http://stackoverflow.com");
URLConnection connection = new URLConnection(url);
InputStream stream = url.openConnection();
// ... read stream like any file stream

Este código, es bueno para los propósitos de secuencias de comandos y el uso interno. Me gustaría argumentar en contra de usarla para su uso en producción sin embargo. No maneja los tiempos de espera y las conexiones fallidas.

Yo recomiendo usar HttpClient biblioteca para su uso en producción. Es compatible con la autenticación, redirigir la manipulación, roscado, puesta en común, etc.

Otros consejos

En Python:

import urllib
# Get a file-like object for the Python Web site's home page.
f = urllib.urlopen("http://www.python.org")
# Read from the object, storing the page's contents in 's'.
s = f.read()
f.close()

Por favor, vea Python y HTML Procesamiento para más detalles.

Tal vez también se debe considerar una alternativa como correr una utilidad estándar como wget o rizo desde la línea de comandos para buscar el árbol del sitio en un árbol de directorio local. A continuación, hacer su exploración (en Java, Python, lo que sea) utilizando la copia local. Debe ser más fácil de hacer eso, que para poner en práctica todas las cosas aburridas como la gestión de errores, análisis de argumentos, etc ti mismo.

Si se desea obtener todas las páginas de un sitio, wget y rizo no sabe cómo cosechar los enlaces desde páginas HTML. Una alternativa es utilizar un de código abierto rastreador web .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top