Usar Wget con un Proxy

En este artículo, profundizarás en el mundo de Wget y Linux, explorando cómo puedes integrar fácilmente proxies en tu flujo de trabajo.
10 min de lectura
Using Wget with a Proxy

GNU Wget es una versátil utilidad de línea de comandos que se ha vuelto indispensable para muchos usuarios de Linux que dependen de ella para obtener archivos de internet sin esfuerzo. Es rica en funciones, fácil de usar y admite protocolos de red comunes, incluyendo HTTP, HTTPS y FTP. Además, Wget tiene soporte integrado para descargar sitios web completos o subconjuntos de páginas, lo que lo convierte en una herramienta ideal para el scraping web, la duplicación y el archivado.

Una de las características más impresionantes de Wget es su capacidad para trabajar perfectamente con proxies. Como usuario de Linux, con frecuencia necesitarás un proxy para enmascarar tu identidad, eludir molestas restricciones regionales o mejorar el rendimiento mediante el balanceo de carga. Con Wget en tu conjunto de herramientas, integrar proxies es sencillo.

¿Qué es Wget?

Wget, abreviatura de “World Wide Web” y “get”, es un programa gratuito y de código abierto para interactuar con archivos en internet. Es parte del Proyecto GNU, un esfuerzo de colaboración masiva de software libre.

Wget viene equipado con funciones útiles para usuarios técnicos que trabajan con archivos en línea. Estas incluyen descargas por lotes, reanudación de descargas interrumpidas, descarga recursiva, soporte de Proxy, programación de descargas, limitación de ancho de banda, agente de usuario personalizable y soporte SSL/TLS. También es no interactivo, lo que lo hace perfecto para scripts y trabajos cron que se ejecutan en segundo plano.

Wget es popular entre los usuarios de Linux y Unix, y también tiene versiones disponibles para Windows y macOS. Su impresionante gama de características y compatibilidad multiplataforma lo convierten en la herramienta preferida para diversas tareas basadas en la web, como descargar archivos grandes, automatizar descargas y crear mirrors de sitios web.

Usar Proxies con Wget en Linux

Existe una amplia variedad de proxies, incluyendo proxies de centro de datos e IPs residenciales, cada uno con sus propias ventajas y casos de uso. Usar proxies con Wget ofrece beneficios como eludir restricciones geográficas y de red/ISP. También te permite mantener el anonimato y la privacidad mientras navegas por la web o descargas archivos.

Al usar el proveedor de proxy adecuado, los proxies también pueden usarse para almacenar en caché recursos de acceso frecuente, mejorando el rendimiento. Además, los proveedores de proxy pueden influir en las velocidades de red, ayudarte a eludir límites de velocidad al proporcionar un amplio grupo de proxies de direcciones IP, e incluso ofrecer soluciones que ayudan a resolver CAPTCHA. Esto hace que seleccionar el proveedor de proxy correcto sea esencial para garantizar que tu Proxy funcione de manera efectiva, especialmente al usarlo con Wget.

Configurar Wget con un Proxy

Para usar Wget con un proxy, necesitas configurar los ajustes apropiados en tu entorno o dentro del propio comando Wget. Hay varias formas de hacerlo, y este tutorial cubrirá cuatro de ellas: configurar los ajustes de proxy usando variables de entorno, establecer proxies para todos los usuarios actualizando el archivo /etc/wgetrc, establecer proxies para el usuario actual actualizando el archivo ~/.wgetrc, y establecer el proxy para la instancia de terminal actual usando el indicador -e. También aprenderás a usar Wget con proxies autenticados y no autenticados.

Puedes encontrar todas las configuraciones analizadas en este artículo en este gist de GitHub.

Antes de comenzar a usar Wget con un proxy, necesitas lo siguiente:

  • Sistemas basados en Debian
  • Detalles del servidor proxy: Para usar Wget con un proxy, necesitas los detalles del servidor proxy. Esto incluye la dirección IP o nombre de host del servidor, el número de puerto y, si es necesario, la información de autenticación (es decir, nombre de usuario y contraseña). Puedes obtener esta información de tu proveedor de proxy o administrador de red.

1. Configurar los Ajustes de Proxy Usando Variables de Entorno

La forma más sencilla de establecer configuraciones de proxy para Wget es definiéndolas a nivel de sistema usando variables de entorno. Esto permite que múltiples programas lean el valor y lo utilicen, por lo que solo necesitas cambiarlo una vez. Establecer el proxy como variable de entorno garantiza que Wget lo use para todas las solicitudes realizadas desde tu computadora.

Para configurar un proxy para Wget, agrega las siguientes líneas a tu archivo de configuración de shell (es decir .bashrc o .bash_profile) y reemplaza los marcadores de posición con la dirección y el puerto de tu servidor proxy (es decir http://proxy.example.com:8080):

export http_proxy=http://proxy_address:proxy_port
export https_proxy=https://proxy_address:proxy_port

Si el proxy requiere autenticación, en lugar de http://proxy_address:proxy_port, también debes agregar el nombre de usuario y la contraseña en la URL para que quede así:

export http_proxy=http://username:password@proxy_address:proxy_port
export https_proxy=username:password@proxy_address:proxy_port
export ftp_proxy=username:password@proxy_address:proxy_port

Recuerda reemplazar las variables de usernamepasswordproxy_address y proxy_port con los valores apropiados (es decir http_proxy=http://username:[email protected]:8080).

Después de agregar estas líneas, reinicia tu shell o ejecuta source .bashrc o source .bash_profile, según el archivo que hayas usado para aplicar los cambios.

2. Establecer Proxies para Todos los Usuarios Actualizando el Archivo /etc/wgetrc

Si necesitas establecer un proxy para todo el sistema. Por ejemplo, si deseas usar un proxy solo al descargar archivos con Wget para proteger tu identidad, Wget ofrece una forma sencilla de hacerlo, ya sea para un usuario individual del sistema o para todos los usuarios del sistema.

Establecer el proxy para todos los usuarios del sistema es útil en casos donde hay una máquina compartida de la empresa con diferentes usuarios que dependen del mismo proxy para realizar su trabajo. Wget te permite configurar el proxy una vez para que todos los usuarios puedan acceder a él.

Para establecer un proxy para todos los usuarios, debes modificar el archivo de configuración ubicado en /etc/wgetrc. El archivo wgetrc es un archivo de inicialización que almacena configuraciones y opciones predeterminadas para Wget. Este archivo te permite personalizar su comportamiento sin tener que especificar siempre argumentos de línea de comandos.

Para establecer el proxy, abre el archivo wgetrc con tu editor de texto favorito y agrega las siguientes líneas:

https_proxy = http://proxy.example.com:8080
http_proxy = http://proxy.example.com:8080
ftp_proxy = http://proxy.example.com:8080

Para proxies autenticados, usa la siguiente sintaxis:

https_proxy = http://username:[email protected]:8080
http_proxy = http://username:[email protected]:8080
ftp_proxy = http://username:[email protected]:8080

Reemplaza proxy.example.com:8080 y username:password con la dirección, el puerto y las credenciales de autorización de tu servidor proxy. Guarda el archivo y cierra el editor. A partir de ahora, todas las solicitudes de Wget realizadas por cualquier usuario en tu sistema usarán el servidor proxy especificado.

3. Establecer Proxies para el Usuario Actual Actualizando el Archivo ~/.wgetrc

Wget también te permite cambiar las configuraciones de proxy solo para el usuario actual. Esto puede ser útil si estás en una situación donde los detalles del proxy necesitan información de autenticación específica para cada usuario.

Para establecer el proxy, necesitas crear/modificar el archivo ~/.wgetrc. Este es un archivo wgetrc específico del usuario ubicado en tu directorio de inicio (~/). Almacena configuraciones que solo afectan al usuario actual. El archivo ~/.wgetrc puede no existir por defecto, especialmente en nuevas instalaciones de Linux o cuentas de usuario, porque el archivo generalmente se crea cuando un usuario necesita personalizar la configuración de Wget específica para su cuenta. Si el archivo no existe, puedes crearlo.

Una vez que tengas el archivo ~/.wgetrc, ábrelo en tu editor de texto favorito y agrega las siguientes líneas:

https_proxy = http://proxy.example.com:8080
http_proxy = http://proxy.example.com:8080
ftp_proxy = http://proxy.example.com:8080

Nuevamente, recuerda reemplazar proxy.example.com:8080 con tus detalles específicos. Este método solo afecta las solicitudes de Wget realizadas por el usuario actual. Si cambias a un usuario diferente en la misma máquina, estos ajustes no se aplican.

4. Establecer el Proxy para la Instancia de Terminal Actual Usando el Indicador -e

Si no deseas establecer el proxy a nivel de sistema o de Wget, puedes configurarlo directamente al ejecutar el comando Wget. Este método te permite usar diferentes configuraciones de proxy para comandos Wget individuales, brindándote mayor flexibilidad.

Para especificar la configuración de proxy para una sola solicitud de Wget, usa la siguiente sintaxis:

# http proxy
wget -e use_proxy=yes -e http_proxy=http://proxy_address:proxy_port URL
# https proxy
wget -e use_proxy=yes -e https_proxy=http://proxy_address:proxy_port URL

En este código, URL es la URL que deseas que Wget obtenga (p. ej. www.google.com).

Para proxies autenticados, puedes usar la sintaxis http://username:password@proxy_address:proxy_port para especificar el proxy, como se analizó en la sección anterior.

Este método te permite establecer un proxy para una sola solicitud sin afectar otras solicitudes, sesiones de terminal o usuarios.

Usar Wget

Afortunadamente, usar Wget es sencillo. La sintaxis general para Wget es wget [options] [url], donde primero especificas argumentos opcionales (es decir [options]), como el -e use_proxy=yes que aprendiste anteriormente, seguido de la [url] que deseas obtener. Esto podría ser un archivo multimedia, como un documento o incluso una página web.

Dado que la primera parte es opcional, puedes obtener un recurso web especificando wget [url]. Por ejemplo, llamar a wget http://example.com/file.pdf obtiene el archivo y lo descarga en tu máquina local.

También puedes descargar un archivo especificando el nombre que se usará al guardarlo en disco. Para hacerlo, usa el argumento --output-document:

 wget --output-document=image.jpg https://httpbin.org/image/jpeg

Wget también te permite agrupar tus descargas y descargar desde múltiples URLs en un solo comando. Para hacerlo, necesitas crear un archivo y pegar tus URLs, cada una en su propia línea. Después de esto, puedes ejecutar el siguiente comando:

wget ‐‐input list-of-file-urls.txt

Ten en cuenta: Si estás usando el método 4 para especificar tu proxy, debes agregar -e use_proxy=yes -e http_proxy=http://proxy_address:proxy_port a los comandos anteriores para que funcionen con un proxy. Las opciones 1, 2 y 3 funcionarán tal como están, ya que el proxy ya está configurado.

Conclusión

En este artículo, aprendiste cuatro métodos diferentes para usar Wget con un proxy y las ventajas de hacerlo. Puedes seleccionar el método más apropiado según tus preferencias para aplicar proxies en todo el sistema, para todos los usuarios, para un usuario específico o para una sola solicitud de Wget.

Si bien usar Wget con un proxy ofrece numerosos beneficios, elegir los servicios de proxy correctos es esencial para maximizar el rendimiento y la fiabilidad. Bright Data es una infraestructura de datos web que ayuda a las empresas a recopilar grandes cantidades de datos estructurados de la web. Al usar sus soluciones de proxy, puedes mejorar tu experiencia con Wget y reducir el número de solicitudes fallidas, asegurando una mejor recuperación de información de internet.

Ya seas una startup o una empresa, Bright Data te ayuda a hacer scraping web de sitios y recopilar datos usando sus soluciones de proxy y herramientas personalizadas, como la API de Web Scraper y el Web Unlocker. Explora los proxies de centro de datos, las opciones de servidor proxy y los precios de Bright Data para encontrar la opción perfecta para tus necesidades de red de proxies.