In der Welt der Webcrawler ist Scrapy so etwas wie ein Schweizer Taschenmesser, leistungsstark und flexibel. Doch auch das leistungsstärkste Tool hat seine Grenzen, vor allem wenn Sie bestimmte Websites häufig besuchen, werden Sie wahrscheinlich von den Anti-Crawler-Mechanismen der Website erfasst. An diesem Punkt sind Proxy-IPs wie eine Chamäleon-Tarnung, die es Ihrem Crawler ermöglicht, sich ungehindert durch das Netzwerk zu bewegen. Heute wollen wir darüber sprechen, wie man Proxy-IPs in Scrapy einrichtet, damit Ihr Crawler wie ein Fisch außerhalb des Wassers ist.
Was ist eine Proxy-IP?
Proxy-IP ist, wie der Name schon sagt, eine IP-Adresse, die für Sie auf das Internet zugreift. So wie Sie beim Online-Einkauf manchmal Ihren Freund bitten, den Einkauf für Sie zu erledigen, ist die Proxy-IP dieser "Freund". Mit der Proxy-IP können Sie Ihre echte IP-Adresse verbergen, um zu vermeiden, dass sie von der Ziel-Website blockiert wird.
Warum sollte ich eine Proxy-IP verwenden?
Die Verwendung einer Proxy-IP hat viele Vorteile. Der einfachste ist die Vermeidung von IP-Sperren. Wenn Sie eine Website häufig besuchen, könnte der Server der Website Sie für einen böswilligen Crawler halten und Ihre IP blockieren. Durch die Verwendung einer Proxy-IP können Sie diese Beschränkungen effektiv umgehen und mit der Datenerfassung fortfahren.
Wie setzt man die Proxy-IP in Scrapy?
Als Nächstes zeigen wir Ihnen Schritt für Schritt, wie Sie eine Proxy-IP in Scrapy einrichten. Der gesamte Prozess ist nicht kompliziert und kann mit nur wenigen Zeilen Code erledigt werden.
1. installieren Sie Scrapy
Als erstes müssen Sie sicherstellen, dass Sie Scrapy installiert haben. Wenn Sie es noch nicht haben, können Sie es mit dem folgenden Befehl installieren:
pip install scrapy
2. das Erstellen von Scrapy-Projekten
Sobald die Installation abgeschlossen ist, erstellen Sie ein neues Scrapy-Projekt:
scrapy startprojekt meinprojekt
3 Ändern Sie die Datei settings.py.
Öffnen Sie die Datei settings.py im Projektverzeichnis, suchen Sie den Konfigurationspunkt `DOWNLOADER_MIDDLEWARES` und fügen Sie Folgendes hinzu:
DOWNLOADER_MIDDLEWARES = {
scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
'myproject.middlewares.MyProxyMiddleware': 100,
}
4. benutzerdefinierte Middleware schreiben
Als nächstes erstellen Sie eine Datei middlewares.py in Ihrem Projektverzeichnis und fügen den folgenden Code hinzu:
zufällig importieren
class MyProxyMiddleware(object).
proxy_list = [
'http://124.124.124.124:8080',
# Hinzufügen weiterer Proxy-IPs
]
proxy = random.choice(proxy_list)
request.meta['proxy'] = proxy
Diese Middleware wählt nach dem Zufallsprinzip eine Proxy-IP für jede Anfrage aus, so dass die häufige Verwendung derselben IP vermieden wird.
Wie erhält man eine Proxy-IP?
Es gibt viele Anbieter von Proxy-IP-Diensten auf dem Markt, und Sie können den richtigen Dienst je nach Ihren Bedürfnissen auswählen. Im Allgemeinen sind bezahlte Proxy-IPs von höherer Qualität und besserer Stabilität. Natürlich gibt es auch einige kostenlose Proxy-IP-Seiten, aber die Qualität und Stabilität dieser IPs kann weniger wünschenswert sein.
Proxy-IP testen
Der letzte Schritt besteht darin, zu testen, ob Ihre Proxy-IP korrekt funktioniert. Sie können einen einfachen Crawler schreiben, der eine Website besucht, die eine IP-Adresse anzeigt, und prüfen, ob die zurückgegebene IP mit der von Ihnen eingerichteten Proxy-IP übereinstimmt.
importieren scrapy
Klasse IpSpider(scrapy.)
name = 'ip_spider'
start_urls = ['http://httpbin.org/ip']
def parse(self, response): self.log(response.text)
self.log(antwort.text): self.log(antwort.text)
Führen Sie diesen Crawler aus. Wenn die zurückgegebene IP-Adresse mit der von Ihnen eingestellten Proxy-IP übereinstimmt, dann herzlichen Glückwunsch, die Proxy-IP ist erfolgreich eingestellt!
Zusammenfassungen
Mit den obigen Schritten haben Sie gelernt, wie Sie die Proxy-IP in Scrapy einstellen können. Dieser Trick hilft Ihnen nicht nur, den Anti-Crawler-Mechanismus zu umgehen, sondern verbessert auch die Effizienz der Datensammlung. Ich hoffe, dieser Artikel hat Ihnen geholfen, Ihr Crawler-Projekt reibungsloser zu gestalten.
Denken Sie daran: Webcrawling ist eine Kunst. Mögen Sie auf diesem Weg höher und höher klettern!