Bez IP proxy praca nad crawlerem będzie trudna, więc wielu inżynierów crawlerów musi kupować wydajne i stabilne IP proxy. Z wysokiej jakości IP proxy, czy możesz się zrelaksować? Sprawy nie są takie proste – konieczne jest także zoptymalizowanie schematu, racjonalne alokowanie zasobów, poprawa efektywności pracy oraz wykonywanie pracy z crawlerami bardziej efektywnie, szybciej i stabilniej.
Opcja 1: Każdy proces losowo wybiera listę IP z API interfejsu (na przykład wyodrębniając 100 IP jednocześnie), aby je przejść, a następnie wywołuje API, aby je uzyskać, jeśli się nie powiedzie, a ogólna logika jest następująca:
1. Każdy proces (lub wątek) losowo pobiera partię IP z interfejsu i próbuje pobrać dane z listy IP w pętli.
2. Jeśli dostęp się uda, kontynuuj pobieranie kolejnego.
3. Jeśli się nie powiedzie (np. timeout, kod weryfikacyjny itp.), pobierz partię IP z interfejsu i kontynuuj próby.
Wady rozwiązania: Każde IP ma datę ważności, jeśli wyodrębni się 100, a przy użyciu dziesiątego może być nieważna. Jeśli ustawisz żądanie HTTP z limitem połączenia wynoszącym 3 sekundy i limitem odczytu 5 sekund, możesz zmarnować 3-8 sekund czasu, a te 3-8 sekund może być pobrane dziesiątki razy.
Opcja 2: Każdy proces przyjmuje losowe IP z API interfejsu, a następnie wywołuje API, aby uzyskać IP, jeśli się nie powiedzie, ogólna logika jest następująca:
1. Każdy proces (lub wątek) losowo pobiera adres IP z interfejsu i wykorzystuje go do dostępu do zasobów.
2. Jeśli dostęp się uda, kontynuuj pobieranie kolejnego.
3. Jeśli się nie powiedzie (np. przy wymianie czasu, kodie weryfikacyjnym itp.), wybierz losowo adres IP z interfejsu i kontynuuj próbę.
Wady: Bardzo często wywoływanie API w celu uzyskania adresów IP, co wywiera dużą presję na serwer proxy, wpływa na stabilność interfejsu API i może być ograniczone w możliwości wyodrębniania. Ten system również nie jest odpowiedni i nie może być realizowany w sposób zrównoważony i stabilny.
Opcja 3: Najpierw wyodrębnij dużą liczbę IP i zaimportuj je do lokalnej bazy danych, a następnie pobierz IP z bazy; ogólna logika jest następująca:
1. Utworzenie tabeli w bazie danych, napisanie skryptu importującego, żądanie API co minutę (konsultacja z zaleceniami dostawcy usług IP proxy) oraz import listy IP do bazy danych.
2. Zapisz czas importu, IP, port, czas wygaśnięcia, status dostępności IP i inne pola w bazie danych;
3. Napisz skrypt grab, skrypt crab odczytuje dostępny adres IP z bazy danych, a każdy proces pobiera IP z bazy do użycia.
4. Przeprowadz indeksowanie, oceniaj wyniki, przetwarzaj ciasteczka itp., o ile jest kod weryfikacyjny lub awaria, zrezygnuj z tego IP i zmienij na nowy IP.
To rozwiązanie skutecznie eliminuje zużycie zasobów serwera proxy, efektywnie przydziela użycie IP proxy, jest bardziej efektywne i stabilne oraz zapewnia trwałość i stabilność pracy crawlera. |