Sem IP de proxy, o trabalho com crawlers será difícil, então muitos engenheiros de crawlers precisam comprar IPs proxy eficientes e estáveis. Com um IP proxy de alta qualidade, você pode relaxar? As coisas não são tão simples, e também é necessário otimizar o esquema, alocar recursos racionalmente, melhorar a eficiência do trabalho e realizar o trabalho com crawlers de forma mais eficiente, rápida e estável.
Opção 1: Cada processo seleciona aleatoriamente uma lista de IPs da API da interface (por exemplo, extraindo 100 IPs de cada vez) para percorrê-los, e então chama a API para obtê-los caso ela falhe, e a lógica geral é a seguinte:
1. Cada processo (ou thread) recupera aleatoriamente um lote de IPs da interface e tenta recuperar dados da lista de IPs em um ciclo.
2. Se o acesso for bem-sucedido, continue pegando o próximo.
3. Se falhar (como timeout, código de verificação, etc.), pegue um lote de IPs da interface e continue tentando.
Desvantagens da solução: Cada IP tem uma data de validade; se 100 forem extraídos, quando o 10º é usado, a maioria pode ser inválida. Se você configurar uma requisição HTTP com um tempo de conexão de 3 segundos e um tempo de leitura de 5 segundos, pode desperdiçar de 3 a 8 segundos de tempo, e talvez esses 3 a 8 segundos possam ser aproveitados dezenas de vezes.
Opção 2: Cada processo recebe um IP aleatório da API da interface para usar, e então chama a API para obter um IP caso ela falhe, a lógica geral é a seguinte:
1. Cada processo (ou thread) recupera aleatoriamente um IP da interface e usa esse IP para acessar recursos.
2. Se o acesso for bem-sucedido, continue pegando o próximo.
3. Se falhar (como tempo de expiração, código de verificação, etc.), selecione aleatoriamente um IP da interface e continue tentando.
Desvantagens: Chamar APIs para obter endereços IP é muito frequente, o que coloca grande pressão sobre o servidor proxy, afeta a estabilidade da interface da API e pode ser restringido na extração. Esse esquema também não é adequado e não pode ser operado de forma sustentável e estável.
Opção 3: Primeiro, extrair um grande número de IPs e importá-los para o banco de dados local, e então retirar o IP do banco de dados, a lógica geral é a seguinte:
1. Criar uma tabela no banco de dados, escrever um script de importação, solicitar a API por minuto (consulte as sugestões do provedor de serviço IP proxy) e importar a lista de IP para o banco de informações.
2. Registrar o tempo de importação, IP, porta, tempo de expiração, status de disponibilidade de IP e outros campos no banco de dados;
3. Escreva um script de captura, o script crab lê o IP disponível do banco de dados, e cada processo obtém um IP do banco de dados para uso.
4. Realizar rastreamento, avaliar os resultados, processar cookies, etc., desde que haja um código de verificação ou falha, entregue esse IP e mude para um novo.
Essa solução evita efetivamente o consumo de recursos do servidor proxy, aloca efetivamente o uso da IP proxy, é mais eficiente e estável, e garante a durabilidade e estabilidade do trabalho com crawlers. |