Bez proxy IP bude práca s crawlerom náročná, takže mnohí inžinieri crawlerov musia kúpiť efektívnu a stabilnú proxy IP. S kvalitnou proxy IP – dokážete si sadnúť a oddýchnuť si? Veci nie sú také jednoduché a je tiež potrebné optimalizovať schému, racionálne rozdeľovať zdroje, zlepšiť efektivitu práce a vykonávať prácu s crawlermi efektívnejšie, rýchlejšie a stabilnejšie.
Možnosť 1: Každý proces náhodne vyberie zoznam IP z API rozhrania (napríklad extrahovaním 100 IP naraz), aby ich prechádzal, a potom volá API, aby ich získalo, ak zlyhá, a všeobecná logika je nasledovná:
1. Každý proces (alebo vlákno) náhodne získava dávku IP z rozhrania a snaží sa získať dáta zo zoznamu IP v slučke.
2. Ak je prístup úspešný, pokračujte v získavaní ďalšej.
3. Ak zlyhá (napríklad časový limit, overovací kód a pod.), vezmite dávku IP z rozhrania a pokračujte v pokuse.
Nevýhody riešenia: Každá IP má dátum expirácie, ak sa extrahuje 100, pri použití desiateho môže byť väčšina z nich neplatná. Ak nastavíte HTTP požiadavku s timeoutom pripojenia 3 sekundy a timeoutom čítania 5 sekúnd, môžete stratiť 3-8 sekúnd času, a možno sa týchto 3-8 sekúnd dá získať desiatkykrát.
Možnosť 2: Každý proces si vezme náhodnú IP adresu z API rozhrania a potom zavolá API na získanie IP, ak zlyhá, všeobecná logika je nasledovná:
1. Každý proces (alebo vlákno) náhodne získava IP adresu z rozhrania a používa ju na prístup k zdrojom.
2. Ak je prístup úspešný, pokračujte v získavaní ďalšej.
3. Ak zlyhá (napríklad časový limit, overovací kód a pod.), potom náhodne vyberte IP adresu z rozhrania a pokračujte v pokuse.
Nevýhody: Volanie API na získanie IP adries je veľmi časté, čo vyvíja veľký tlak na proxy server, ovplyvňuje stabilitu API rozhrania a môže byť obmedzené pri extrakcii. Tento systém tiež nie je vhodný a nemožno ho prevádzkovať udržateľne a stabilne.
Možnosť 3: Najprv extrahujte veľké množstvo IP a importujte ich do lokálnej databázy, potom vezmite IP z databázy, všeobecná logika je nasledovná:
1. Vytvorte tabuľku v databáze, napíšte importný skript, požiadajte API za minútu (konzultujte odporúčania poskytovateľa proxy IP služieb) a importujte zoznam IP do databázy.
2. Zaznamenávajte čas importu, IP, port, čas vypršania, stav dostupnosti IP a ďalšie polia v databáze;
3. Napíšte grab skript, crab skript načíta dostupnú IP adresu z databázy a každý proces získa IP adresu z databázy na použitie.
4. Vykonajte prehľadávanie, vyhodnocujte výsledky, spracovávajte cookies a podobne, pokiaľ existuje overovací kód alebo zlyhanie, vzdať sa tejto IP adresy a zmeniť na novú.
Toto riešenie efektívne zabraňuje spotrebe zdrojov proxy servera, efektívne prideľuje používanie proxy IP, je efektívnejšie a stabilnejšie a zabezpečuje odolnosť a stabilitu práce crawlera. |