Bez proxy IP bude práce crawlerů obtížná, takže mnoho inženýrů crawlerů musí koupit efektivní a stabilní proxy IP. S vysoce kvalitním proxy IP – dokážete si sednout a odpočinout? Věci nejsou tak jednoduché a je také nutné optimalizovat schéma, racionálně rozdělovat zdroje, zlepšovat efektivitu práce a provádět práci s crawlery efektivněji, rychleji a stabilněji.
Možnost 1: Každý proces náhodně vybere seznam IP adres z rozhraní API (například extrahování 100 IP najednou), aby je procházel, a poté volá API, aby je získalo, pokud selže, a obecná logika je následující:
1. Každý proces (nebo vlákno) náhodně získá dávku IP adres z rozhraní a snaží se v cyklu získat data ze seznamu IP.
2. Pokud je přístup úspěšný, pokračujte v získávání dalšího.
3. Pokud selže (například časový limit, ověřovací kód atd.), vezměte dávku IP adres z rozhraní a pokračujte v pokusu.
Nevýhody řešení: Každá IP má datum expirace, pokud se extrahuje 100, při použití desáté může být většina těchto neplatných. Pokud nastavíte HTTP požadavek s timeoutem spojení 3 sekundy a timeoutem čtení 5 sekund, můžete ztratit 3–8 sekund času, a možná těch 3–8 sekund lze získat desítkykrát.
Možnost 2: Každý proces vezme náhodnou IP adresu z rozhraní API a poté zavolá API k získání IP adresy, pokud selže, obecná logika je následující:
1. Každý proces (nebo vlákno) náhodně získá IP adresu z rozhraní a použije ji k přístupu ke zdrojům.
2. Pokud je přístup úspěšný, pokračujte v získávání dalšího.
3. Pokud selže (například časový limit, ověřovací kód atd.), náhodně vyberte IP adresu z rozhraní a pokračujte v pokusu.
Nevýhody: Volání API za účelem získání IP adres je velmi časté, což vyvíjí velký tlak na proxy server, ovlivňuje stabilitu API rozhraní a může být omezeno při extrakci. Tento systém také není vhodný a nelze jej provozovat udržitelně a stabilně.
Možnost 3: Nejprve extrahujte velké množství IP adres a importujte je do lokální databáze, poté vezměte IP z databáze, obecná logika je následující:
1. Vytvořit tabulku v databázi, napsat importní skript, požádat API za minutu (konzultovat doporučení poskytovatele proxy IP služeb) a importovat seznam IP adres do databáze.
2. Zaznamenat čas importu, IP, port, čas expirace, stav dostupnosti IP a další pole v databázi;
3. Napište grab skript, crab skript čte dostupnou IP z databáze a každý proces získá IP adresu z databáze pro použití.
4. Provést procházení, vyhodnocovat výsledky, zpracovávat cookies atd., pokud existuje ověřovací kód nebo selhání, vzdát se této IP adresy a změnit ji na novou.
Toto řešení efektivně zabraňuje spotřebě zdrojů proxy serveru, efektivně přiděluje využití proxy IP, je efektivnější a stabilnější a zajišťuje odolnost a stabilitu práce crawlerů. |