Usar o Wget com um Proxy

Neste artigo, vai mergulhar no mundo do Wget e do Linux, explorando como pode facilmente integrar proxies no seu fluxo de trabalho.
12 min read
Using Wget with a Proxy

O Wget de GNU é um utilitário de linha de comandos versátil que se tornou indispensável para muitos usuários de Linux que dependem dele para obter ficheiros da Internet sem esforço. Tem muitas funcionalidades, é fácil de utilizar e suporta protocolos de rede comuns, incluindo HTTP, HTTPS e FTP. Além disso, o Wget tem suporte incorporado para descarregar sítios web inteiros ou subconjuntos de páginas, o que o torna uma ferramenta ideal para raspagem da web, espelhamento e arquivamento.

Uma das características mais impressionantes do Wget é a sua capacidade de trabalhar sem problemas com proxies. Como usuário de Linux, é frequente precisar de um proxy para mascarar a sua identidade, contornar restrições regionais incómodas ou melhorar o desempenho através do balanceamento de carga. Com o Wget no seu kit de ferramentas, a integração de proxies é fácil.

O que é o Wget?  

Wget, abreviatura de “World Wide Web” e “get”, é um programa gratuito e de código aberto para interagir com ficheiros na Internet. Faz parte do Projeto GNU, um esforço de colaboração em massa de software livre.

O Wget está equipado com funcionalidades úteis para os usuários técnicos que trabalham com ficheiros em linha. Estas incluem descarregamentos em lote, retoma de descarregamentos interrompidos, descarregamento recursivo, suporte de proxy, agendamento de descarregamentos, limitação de largura de banda, agente de usuário personalizável e suporte SSL/TLS. É também não-interativo, o que o torna perfeito para scripts e tarefas cron que são executadas em segundo plano.

O Wget é popular entre os usuários de Linux e Unix e também tem versões disponíveis para Windows e macOS. A impressionante variedade de funcionalidades do Wget e a sua compatibilidade entre plataformas fazem dele a ferramenta ideal para várias tarefas baseadas na web, tais como descarregar ficheiros grandes, automatizar descargas e criar espelhos de sites.

Usar Proxies com Wget no Linux

 

Existe uma grande variedade de proxies, incluindo proxies de centros de dados e residenciais, cada um com as suas próprias vantagens e casos de utilização. A utilização de proxies com o Wget oferece vantagens, tais como contornar restrições geográficas e de rede/ISP. Também lhe permite manter o anonimato e a privacidade enquanto navega na web ou descarrega ficheiros.

Quando se utiliza o fornecedor de proxy correto, os proxies também podem ser utilizados para armazenar em cache recursos frequentemente acedidos, aumentando o desempenho. Além disso, os fornecedores de proxy podem influenciar as velocidades da sua rede, ajudá-lo a contornar os limites de taxa fornecendo um vasto conjunto de endereços IP e até fornecer soluções que o ajudam a contornar captchas. Isto faz com que a seleção do fornecedor de proxy correto seja essencial para garantir que o seu proxy funcione eficazmente, especialmente quando o utiliza com o Wget.  

Configurar o Wget com um Proxy

 

Para utilizar o Wget com um proxy, é necessário configurar as definições adequadas no seu ambiente ou no próprio comando Wget. Há várias maneiras diferentes de fazer isso, e este tutorial cobrirá quatro delas: configurar as definições de proxy usando variáveis ambientais, definir proxies para todos os usuários atualizando o ficheiro /etc/wgetrc, definir proxies para o usuário atual atualizando o ficheiro ~/.wgetrc e definir o proxy para a instância atual do terminal usando o sinalizador -e. Também aprenderá a utilizar o Wget com proxies autenticados e não autenticados.

Você pode encontrar todas as configurações discutidas neste artigo neste gist do GitHub.

Antes de começar a usar o Wget com um proxy, é necessário o seguinte:

  • Ambiente Linux: Este guia foi criado para um sistema Linux, que pode ser Ubuntu, Fedora, Debian ou qualquer outra distribuição Linux. Certifique-se de que tem o Linux instalado na sua máquina ou num ambiente virtual.  
  • Wget: O Wget vem pré-instalado na maioria dos sistemas Linux. Para verificar se está instalado, abra o terminal e escreva wget --version. Se o Wget estiver instalado, o comando devolve o número da sua versão. Se não estiver instalado, pode instalar o Wget utilizando o gestor de pacotes da sua distribuição, como o apt para sistemas baseados em Debian ou o yum para Fedora.
  • Detalhes do servidor proxy: Para utilizar o Wget com um proxy, precisa dos detalhes do servidor proxy. Isto inclui o endereço IP ou o nome de host do servidor, o número da porto e, se necessário, informações de autenticação (ou seja, nome de usuário e palavra-passe). Pode obter estas informações do seu fornecedor de proxy ou administrador de rede.  

1. Configurar definições de proxy usando variáveis de ambiente

 

A maneira mais fácil de definir configurações de proxy para o Wget é definindo-as a nível de sistema usando variáveis de ambiente. Isto permite que vários programas leiam o valor e o utilizem, pelo que só é necessário alterá-lo uma vez. Definir o proxy como uma variável ambiental garante que o Wget o utilize para todos os pedidos feitos desde o seu computador.

Para configurar um proxy para o Wget, adicione as seguintes linhas ao seu ficheiro de configuração do shell (ou seja, .bashrc ou .bash_profile) e substitua os marcadores pelo endereço e porto do seu servidor proxy (ou seja, http://proxy.example.com:8080):

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

Se o proxy exigir autenticação, em vez de http://proxy_address:proxy_port, deve também adicionar o nome de usuário e a palavra-passe no URL, de modo que tenha o seguinte aspeto:

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

Não se esqueça de substituir as variáveis para nome de usuário, palavra-passe, proxy_address e proxy_port pelos valores apropriados (ou seja, http_proxy=http://username:[email protected]:8080).

Depois de adicionar estas linhas, reinicie o shell ou execute source .bashrc ou source .bash_profile, dependendo do ficheiro que utilizou para aplicar as alterações.

2. Definir Proxies para todos os usuários atualizando o ficheiro /etc/wgetrc

 

Se for necessário definir um proxy para todo o sistema. Por exemplo, se quiser utilizar um proxy apenas quando descarregar ficheiros com o Wget para proteger a sua identidade, o Wget fornece uma forma fácil de o fazer, e pode ser feito tanto para um usuário individual do sistema como para todos os usuários do sistema.

Definir o proxy para todos os usuários do sistema é útil nos casos em que existe uma máquina partilhada da empresa com diferentes utilizadores que dependem do mesmo proxy para realizar o trabalho. O Wget permite-lhe configurar o proxy uma vez para que todos os usuários possam aceder.

Para definir um proxy para todos os usuários, é necessário modificar o ficheiro de configuração localizado em /etc/wgetrc. O ficheiro wgetrc é um ficheiro de inicialização que armazena configurações e opções padrão para o Wget. Este ficheiro permite-lhe personalizar o seu comportamento sem especificar sempre os argumentos da linha de comandos.

Para definir o proxy, abra o ficheiro wgetrc usando seu editor de texto favorito e adicione as seguintes linhas:

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

Para proxies autenticados, utilize a seguinte sintaxe:

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

Substitua proxy.example.com:8080 e username:password pelo endereço, porto e credenciais de autorização do seu servidor proxy. Guarde o ficheiro e feche o editor. A partir de agora, todos os pedidos de Wget feitos por qualquer usuário no seu sistema irão utilizar o servidor proxy especificado.

3. Definir Proxies para o usuário atual atualizando o ficheiro ~/.wgetrc

 

O Wget também permite alterar as configurações de proxy apenas para o usuário atual. Isto pode ser útil se estiver numa situação em que os detalhes do proxy necessitem de informações de autenticação específicas para cada usuário.

Para definir o proxy, é necessário criar/modificar o ficheiro ~/.wgetrc. Este é um ficheiro wgetrc específico do usuário localizado no seu diretório de início (~/). Armazena configurações que só são afetadas pelo usuário atual. O ficheiro ~/.wgetrc pode não existir por defeito, especialmente em novas instalações Linux ou contas de usuário, porque o ficheiro é normalmente criado quando um usuário precisa de personalizar as definições do Wget específicas da sua conta. Se o ficheiro não existir, pode criá-lo.

Quando tiver o ficheiro ~/.wgetrc, abra-o no seu editor de texto favorito e adicione as seguintes linhas:

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

Mais uma vez, lembre-se de substituir proxy.example.com:8080 pelos seus detalhes específicos. Este método apenas afeta os pedidos Wget feitos pelo usuário atual. Se mudar para um usuário diferente na mesma máquina, estas definições não se aplicarão.

4. Definir Proxy para a instância de terminal atual utilizando o sinal -e

 

Se não quiser definir o proxy ao nível do sistema ou do Wget, pode configurá-lo diretamente ao executar o comando Wget. Este método permite-lhe utilizar diferentes definições de proxy para comandos Wget individuais, dando-lhe maior flexibilidade.

Para especificar a configuração do proxy para um único pedido Wget, utilize a seguinte sintaxe:

# 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

Neste código, URL é o URL que pretende que o Wget busque (por exemplo, www.google.com).

Para proxies autenticados, pode utilizar a sintaxe http://username:password@proxy_address:proxy_port para especificar o proxy, tal como referido na seção anterior.

Este método permite-lhe definir um proxy para um único pedido sem afetar outros pedidos, sessões do terminal ou usuários.

Utilizar o Wget  

Felizmente, a utilização do Wget é simples. A sintaxe geral do Wget é wget [options] [url], onde primeiro especifica argumentos opcionais (ou seja, [options]), como o -e use_proxy=yes que aprendeu anteriormente, seguido do [url] que pretende obter. Pode ser um ficheiro multimédia, como um documento ou mesmo uma página web.

Como a primeira parte é opcional, pode ir buscar um recurso web especificando wget [url]. Por exemplo, chamar wget http://example.com/file.pdf vai buscar o ficheiro e descarrega-o para a sua máquina local.

Também é possível descarregar um ficheiro especificando o nome a utilizar quando o guardar no disco. Para o fazer, utilize o argumento --output-document:

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

O Wget também permite fazer descarregas em lote e de vários URLs num só comando. Para tal, é necessário criar um ficheiro e colar os URLs, cada um na sua própria linha. Depois de o fazer, pode executar o seguinte comando:

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

Nota: Se estiver a utilizar o método 4 para especificar o seu proxy, tem de acrescentar -e use_proxy=yes -e http_proxy=http://proxy_address:proxy_port aos comandos anteriores para que funcionem com um proxy. As opções 1, 2 e 3 funcionarão como estão, uma vez que o proxy já está configurado.

Conclusão

 

Neste artigo, aprendeu quatro métodos diferentes para utilizar o Wget com um proxy e as vantagens de o fazer. Pode selecionar o método mais adequado, dependendo das suas preferências, para aplicar proxies a todo o sistema, a todos os usuários, a um usuário específico ou a um único pedido Wget.

Embora a utilização do Wget com um proxy ofereça inúmeras vantagens, a escolha dos serviços de proxy corretos é essencial para maximizar o desempenho e a fiabilidade. A Bright Data é uma plataforma de dados da web que ajuda as empresas a recolher grandes quantidades de dados estruturados da web. Ao utilizar as suas soluções de proxy, pode melhorar a sua experiência com Wget e reduzir o número de pedidos falhados, garantindo uma melhor recuperação de informações da Internet.  

Quer se trate de uma start-up ou de uma grande empresa, a Bright Data ajuda-o a raspar sítios de web e a coletar dados utilizando as suas soluções de proxy e ferramentas personalizadas, como o IDE para Raspador da Web e o Desbloqueador da Web. Explore os proxies de centro de dados da Bright Data, as opções de servidor proxy e os preços para encontrar o ajuste perfeito para seus requisitos de rede proxy.  

Not sure which product to choose? Contact sales and find the right web scraping solution for you.