2010-01-06 26 views
10

Quiero descargar imágenes de otros sitios web que están protegidos mediante enlaces activos. No quiero vincular esas imágenes a mi sitio web. Solo quería descargarlos.¿Cómo descargar imágenes protegidas de Hotlink?

+0

¿Con Java? Simplemente haz el baile normal de 'url.openConnection'. Siempre que no pase un encabezado 'Referer', debería obtener la imagen. – bobince

+1

(Para aclarar, la mayoría de las protecciones de enlace directo permiten conexiones sin 'Referer' en absoluto, ya que son opcionales en HTTP y pueden no estar presentes, solo bloquean el' Referer' apuntando a un sitio de terceros. algunos bloqueadores que * requieren * que el sitio de la primera parte esté presente en el 'Referer' (en cuyo caso tendrías que agregarlo manualmente), pero dado que esto tiene muchos efectos secundarios indeseables para el sitio, debería ser bastante raro .) – bobince

Respuesta

7

Debe pasar el encabezado HTTP de referencia. Usted puede hacer esto con wget en la mayoría de los sistemas UNIX de la siguiente manera:

wget --referer=http://www.google.com/ http://www.google.com/intl/en_ALL/images/logo.gif 

Aquí una forma cruda de hacerlo, así que ver exactamente lo que está pasando:

telnet google.com 80 
GET /intl/en_ALL/images/logo.gif HTTP/1.1 
REFERER: http://www.google.com/ 
HOST: www.google.com 
3

se puede descargar hotlink imágenes protegidas por utilizando el siguiente código:

URL url = new URL("http://www.somesite.com/picture.jpg"); 

URLConnection urlCon = url.openConnection(); 
urlConn.setRequestProperty("Referer", "http://www.somesite.com"); 
urlConn.connect(); 

InputStream urlStream = urlCon.getInputStream(); 

Image image = ImageIO.read(urlStream); 
0

La extensión de Postman para Chrome le permite realizar solicitudes http personalizadas. Encontré una imagen bloqueada por enlace directo, copié su URL y la ingresé en el Cartero para OBTENERla.

Cuestiones relacionadas