Rotacionador de IP para o Scrapy via Tor
Project description
scrapy-tor-ip-rotator
Este módulo tem por finalidade permitir rotação de IPs ao Scrapy via Tor.
Instalação
Maneira simples de instalação, via pip:
pip install scrapy-tor-proxy-rotation
Configurando Tor
É necessário configurar o Tor. Primeiramente, instale-o:
sudo apt-get install tor
Pare sua execução para realizar configurações:
sudo service tor stop
Abra seu arquivo de configuração como root, disponível em /etc/tor/torrc, por exemplo, usando o nano:
sudo nano /etc/tor/torrc
Coloque as linhas abaixo e salve:
ControlPort 9051
CookieAuthentication 0
Reinicie o Tor:
sudo service tor start
É possível verificar o IP de sua máquina e comparar com o do Tor da seguinte forma:
- Para ver seu IP:
curl http://icanhazip.com/
- Para ver o IP do TOR:
torify curl http://icanhazip.com/
Proxy do Tor não são suportados pelo Scrapy. Para contornar esse problema, é necessário o uso de um intermediário, nesse caso o Privoxy.
O servidor proxy do Tor se encontra, por padrão, no endereço 127.0.0.1:9050
Instalação e configuração do Privoxy:
- Instalar:
sudo apt install privoxy
- Pare sua execução:
sudo service privoxy stop
- Configurá-lo para usar Tor, abra seu arquivo de configuração:
sudo nano /etc/privoxy/config
- Adicione as seguintes linhas:
forward-socks5t / 127.0.0.1:9050 .
- Inicie-o:
service privoxy start
Por padrão, privoxy executará no endereço 127.0.0.1:8118
Teste:
torify curl http://icanhazip.com/
curl -x 127.0.0.1:8118 http://icanhazip.com/
O IP mostrado nos dois passos acima deve ser o mesmo.
Uso
Após realizar essas configurações, já é possível integrar o Tor ao Scrapy.
-
Configure o middleware no arquivo de configuração de seu projeto (settings.py):
DOWNLOADER_MIDDLEWARES = { ..., 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110, 'tor_ip_rotator.middlewares.TorProxyMiddleware': 100 }
-
Habilite o uso da extensão:
TOR_IPROTATOR_ENABLED = True TOR_IPROTATOR_CHANGE_AFTER = #número de requisições feitas em um mesmo endereço IP
Por padrão, um IP poderá ser reutilizado após 10 usos de outros. Esse valor pode ser alterado pela variável TOR_IPROTATOR_ALLOW_REUSE_IP_AFTER, como abaixo:
TOR_IPROTATOR_ALLOW_REUSE_IP_AFTER = #
Um número grande demais pode tornar mais lento recuperar um novo IP para uso ou nem encontrar. Se o valor for 0, não haverá registro de IPs usados.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for scrapy-tor-proxy-rotation-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a77d64595163bba7f279610a6bd6ad4eb26d3e4a3e658e5f9cda2c95be8ae36 |
|
MD5 | a93c8a53babf4a4d75842248b6c1f274 |
|
BLAKE2b-256 | f7e2690c3480f833e07f87c266fc9ec1cedeb5f53c9987fbb81d1ad462825044 |
Hashes for scrapy_tor_proxy_rotation-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c575e49c443b2d1e8d3a20fbbef66ae6b5c3e069adb4907542b25b3858173210 |
|
MD5 | 958d4187f6cad517e3acdfbf5034777e |
|
BLAKE2b-256 | f8e73812214d295d7cb79286ef18fab4867b88ca5cc1b202769daf27610162b0 |