Proxy Port logo
Como Guias de instruções > Como configurar um proxy para urllib

Como configurar um proxy para urllib

Neste artigo, exploraremos como configurar um proxy para Python3 urllib, uma biblioteca interna usada para fazer solicitações HTTP. Forneceremos um trecho de código que demonstra como definir um servidor proxy e um número de porta, criar um objeto ProxyHandler e usá-lo para fazer solicitações por meio do proxy.

Para configurar um proxy para Python3 urllib, você pode usar a classe urllib.request.ProxyHandler para definir o servidor proxy e o número da porta e, em seguida, usar esse objeto para criar um abridor objeto que será utilizado para fazer requisições através do proxy.

Aqui está um trecho de código de exemplo que mostra como configurar um proxy usando urllib:
from urllib import request

# Defina o servidor proxy e o número da porta
proxy_server = 'http://yourproxyserver.com'
proxy_port = '8080'

# Crie um objeto ProxyHandler com o servidor proxy e a porta
proxy_handler = request.ProxyHandler(
    {
        'http': f'{proxy_server}:{proxy_port}',
        'https': f'{proxy_server}:{proxy_port}'
    }
)

# Crie um objeto abridor com o ProxyHandler
opener = request.build_opener(proxy_handler)

# Use o abridor para fazer uma solicitação por meio do proxy
response = opener.open('http://example.com')

# Imprimir a resposta
print(response.read())

            
        
Neste exemplo, substitua http://yourproxyserver.com pela URL do seu servidor proxy e 8080 pelo número da porta que seu servidor proxy está usando. Em seguida, substitua http://example.com pela URL do site que você deseja acessar por meio do proxy.

Se você não tiver seu próprio proxy, poderá obtê-lo no pacote do provedor Proxy Port.
Instalar pacote:
$ pip install proxyport2

            
Defina a API_KEY e chame a função get_proxy:
from proxyport2 import set_api_key, get_proxy

set_api_key('<API_KEY>')

print(get_proxy())


        
Obtenha uma chave API gratuitamente consultando as instruções detalhadas.
Aqui está um exemplo de como você pode combinar as etapas anteriores:
from urllib import request

from proxyport2 import set_api_key, get_proxy


set_api_key('<API_KEY>')

proxy = get_proxy()
proxy_handler = request.ProxyHandler(
    {'http': proxy, 'https': proxy})

opener = request.build_opener(proxy_handler)
response = opener.open('https://example.com', timeout=5)

print(response.read())


        
Não se esqueça de substituir <API_KEY> pelo seu Chave de API.

Às vezes, você pode encontrar erros de tempo limite como este:
TimeoutError: The read operation timed out

            
Proxies públicos não são muito confiáveis e não duram muito. Para superar esses obstáculos, você precisa tentar novas tentativas:
from urllib import request

from proxyport2 import set_api_key, get_proxy


set_api_key('<API_KEY>')

for i in range(10):
    proxy = get_proxy()
    proxy_handler = request.ProxyHandler(
        {'http': proxy, 'https': proxy})
    opener = request.build_opener(proxy_handler)

    try:
        response = opener.open('https://example.com', timeout=5)
        print(response.read())
        break
    except Exception as e:
        print(e)


        
Se você planeja fazer scraping de várias páginas, considere usar uma estrutura de web scraping como Scrapy em vez do urllib de baixo nível.
Proxy para raspagem
Saber mais