Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 13152|Antwort: 2

Mehrere Verfahren für verteilte Crawler zur Verwendung von Proxy-IPs

[Link kopieren]
Veröffentlicht am 17.07.2018 13:54:35 | | |
Ohne Proxy-IP wird die Arbeit an Crawlern schwierig sein, daher müssen viele Crawler-Ingenieure effiziente und stabile Proxy-IP kaufen. Mit einer hochwertigen Proxy-IP kannst du dich zurücklehnen und entspannen? Die Dinge sind nicht so einfach, und es ist auch notwendig, das System zu optimieren, Ressourcen rational zuzuweisen, die Arbeitseffizienz zu verbessern und Crawler-Arbeiten effizienter, schneller und stabiler durchzuführen.

Option 1: Jeder Prozess wählt zufällig eine Liste von IPs aus der Schnittstellen-API aus (zum Beispiel durch das Extrahieren von 100 IPs gleichzeitig), um sie durchzufahren, und ruft dann die API auf, um sie zu erhalten, falls sie fehlschlägt, und die allgemeine Logik ist wie folgt:

1. Jeder Prozess (oder Thread) ruft zufällig einen Batch von IPs aus der Schnittstelle ab und versucht, Daten in einer Schleife aus der IP-Liste zu beziehen.

2. Wenn der Zugriff erfolgreich ist, greifen Sie weiter den nächsten aus.

3. Wenn es fehlschlägt (wie Timeout, Verifizierungscode usw.), nehmen Sie eine Charge von IPs aus der Schnittstelle und versuchen Sie weiter.

Nachteile der Lösung: Jede IP hat ein Verfallsdatum; wenn 100 extrahiert werden, kann bei Verwendung des 10. IP der Großteil letzterer ungültig sein. Wenn du eine HTTP-Anfrage mit einem Verbindungs-Timeout von 3 Sekunden und einem Lese-Timeout von 5 Sekunden einrichtest, könntest du 3-8 Sekunden Zeit verschwenden, und vielleicht können diese 3-8 Sekunden dutzende Male abgerufen werden.

Option 2: Jeder Prozess nimmt eine zufällige IP von der Schnittstellen-API und ruft dann die API auf, um eine IP zu erhalten, falls sie fehlschlägt; die allgemeine Logik lautet wie folgt:

1. Jeder Prozess (oder Thread) ruft zufällig eine IP von der Schnittstelle ab und nutzt diese IP, um auf Ressourcen zuzugreifen.

2. Wenn der Zugriff erfolgreich ist, greifen Sie weiter den nächsten aus.

3. Wenn es fehlschlägt (wie Timeout, Verifizierungscode usw.), wählen Sie zufällig eine IP aus der Schnittstelle aus und versuchen weiter.

Nachteile: Das Aufrufen von APIs zur Erholung von IP-Adressen ist sehr häufig, was großen Druck auf den Proxy-Server ausübt, die Stabilität der API-Schnittstelle beeinträchtigt und möglicherweise beim Extrahieren eingeschränkt wird. Dieses System ist ebenfalls ungeeignet und kann nicht nachhaltig und stabil betrieben werden.

Option 3: Zuerst extrahiert man eine große Anzahl von IPs und importiert sie in die lokale Datenbank, dann entnimmt man die IP aus der Datenbank; die allgemeine Logik ist wie folgt:

1. Eine Tabelle in der Datenbank erstellen, ein Importskript schreiben, die API pro Minute anfordern (konsultieren Sie die Empfehlungen des Proxy-IP-Dienstanbieters) und die IP-Liste in die Datenbank importieren.

2. Erfassung der Importzeit, IP, Port, Verfallszeit, IP-Verfügbarkeitsstatus und anderer Felder in der Datenbank;

3. Schreibe ein Grab-Skript, das Crab-Skript liest die verfügbare IP aus der Datenbank, und jeder Prozess erhält eine IP aus der Datenbank zur Verfügung.

4. Führen Sie Crawling durch, bewerten Sie die Ergebnisse, verarbeiten Sie Cookies usw. Solange es einen Verifizierungscode oder einen Fehler gibt, geben Sie diese IP auf und wechseln Sie zu einer neuen IP.

Diese Lösung vermeidet effektiv den Verbrauch von Proxy-Server-Ressourcen, verteilt effektiv die Nutzung von Proxy-IP, ist effizienter und stabiler und gewährleistet die Beständigkeit und Stabilität der Crawler-Arbeit.




Vorhergehend:Wie man Hreflang für SEO nutzt
Nächster:FEHLER 1093 (HY000): Du kannst die Zieltabelle 'xxx' für upda...
Veröffentlicht am 18.07.2018 14:50:55 |
Sind Schema 3 und Schema 1 nicht dasselbe? Extrahiert man eine große Anzahl von IPs, laufen die, die später nicht mehr verwendet werden, bald ab.
Veröffentlicht am 29.01.2019 21:06:25 |
Mark, ich habe die Idee gelernt, und dann werde ich versuchen, sie zu schreiben
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com