Senza IP proxy, il lavoro con crawler sarà difficile, quindi molti ingegneri crawler devono acquistare IP proxy efficienti e stabili. Con un IP proxy di alta qualità, puoi rilassarti? Le cose non sono così semplici, ed è anche necessario ottimizzare lo schema, allocare razionalmente le risorse, migliorare l'efficienza del lavoro e svolgere il lavoro con crawler in modo più efficiente, veloce e stabile.
Opzione 1: Ogni processo seleziona casualmente una lista di IP dall'API dell'interfaccia (ad esempio, estraendo 100 IP alla volta) per farli ciclare, e poi chiama l'API per ottenerli se fallisce, e la logica generale è la seguente:
1. Ogni processo (o thread) recupera casualmente un lotto di IP dall'interfaccia e cerca di recuperare dati dalla lista IP in un ciclo.
2. Se l'accesso ha successo, continua a prendere il prossimo.
3. Se fallisce (come timeout, codice di verifica, ecc.), prendi un lotto di IP dall'interfaccia e continua a provare.
Svantaggi della soluzione: ogni IP ha una data di scadenza; se ne vengono estratti 100, quando viene utilizzato il decimo, la maggior parte di questi ultimi può essere invalida. Se imposti una richiesta HTTP con un timeout di connessione di 3 secondi e un timeout di lettura di 5 secondi, potresti sprecare 3-8 secondi di tempo, e magari questi 3-8 secondi possono essere recuperati decine di volte.
Opzione 2: Ogni processo prende un IP casuale dall'API dell'interfaccia per utilizzarlo, e poi chiama l'API per ottenere un IP in caso di guasto; la logica generale è la seguente:
1. Ogni processo (o thread) recupera casualmente un IP dall'interfaccia e utilizza questo IP per accedere alle risorse.
2. Se l'accesso ha successo, continua a prendere il prossimo.
3. Se fallisce (come timeout, codice di verifica, ecc.), allora seleziona casualmente un IP dall'interfaccia e continua a provare.
Svantaggi: Chiamare API per ottenere indirizzi IP è molto frequente, il che esercita grande pressione sul proxy server, influisce sulla stabilità dell'interfaccia API e può essere limitato nell'estrazione. Questo schema non è adeguato e non può essere gestito in modo sostenibile e stabile.
Opzione 3: Innanzitutto, estrai un gran numero di IP e importali nel database locale, poi prendi l'IP dal database, la logica generale è la seguente:
1. Creare una tabella nel database, scrivere uno script di importazione, richiedere l'API per minuto (consultare le suggerenze del provider del servizio IP proxy) e importare la lista IP nel database.
2. Registrare il tempo di importazione, l'IP, la porta, l'ora di scadenza, lo stato di disponibilità dell'IP e altri campi nel database;
3. Scrivi uno script grab, lo script crab legge l'IP disponibile dal database e ogni processo ottiene un IP dal database da utilizzare.
4. Eseguire il crawling, giudicare i risultati, elaborare i cookie, ecc., finché c'è un codice di verifica o un errore, rinunciare a questo IP e cambiare a un nuovo IP.
Questa soluzione evita efficacemente il consumo di risorse del proxy server, alloca efficacemente l'uso dell'IP proxy, è più efficiente e stabile, e garantisce la durabilità e la stabilità del lavoro su crawler. |