1. Was ist scrapy_splash?scrapy_splash ist eine Komponente von scrapy
2. Die Rolle von scrapy_splashScrapy-Splash kann den Browser simulieren, um JS zu laden und die Daten zurückzugeben, nachdem JS ausgeführt wurde 3. Umgebungsinstallation von scrapy_splash3.1 Verwenden des Splash-Docker-Image
Es wird beobachtet, dass die Splash-Abhängigkeitsumgebung etwas komplizierter ist, sodass wir das Splash-Docker-Image direkt verwenden können Wenn Sie das Docker-Image nicht verwenden, lesen Sie bitte die offizielle Splash-Dokumentation, um die entsprechende Abhängigkeitsumgebung zu installieren 3.1.1 Installieren und Starten des Docker-Dienstes
3.1.2 Splash-Image abrufen
3.1.3 Überprüfen Sie, ob die Installation erfolgreich war
Besuchen Sie 3.1.4 Lösen Sie das Problem des Zeitlimits für die Bilderfassung: Ändern Sie die Docker-Bildquelle
1. Erstellen und bearbeiten Sie die Docker-Konfigurationsdatei
2. Schreiben Sie die Spiegeladressenkonfiguration von inländischem Docker-cn.com, speichern und beenden Sie { "Registrierungsspiegel": ["https://registry.docker-cn.com"] } 3. Starten Sie den Computer oder den Docker-Dienst neu und beziehen Sie das Splash-Image erneut 4. Wenn es immer noch langsam ist, verwenden Sie bitte Ihren mobilen Hotspot (Daten orz) 3.1.5 Splash-Dienst deaktivieren
sudo docker ps -a sudo docker stop CONTAINER_ID sudo docker rm CONTAINER_ID 3.2 Installieren Sie das Scrapy-Splash-Paket in der virtuellen Python-Umgebung
4. Splash in Scrapy verwenden
4.1 Projekt anlegen und Crawler erstellenscrapy startprojekt test_splash cd test_splash Scrapy Genspider No_Splash Baidu.com Scrapy Genspider mit_Splash Baidu.com 4.2 Verbessern Sie die Konfigurationsdatei settings.py Fügen Sie der Datei # Rendering-Dienst-URL SPLASH_URL = "http://127.0.0.1:8050" # Downloader-Middleware DOWNLOADER_MIDDLEWARES = { 'scrapy_splash.SplashCookiesMiddleware': 723, 'scrapy_splash.SplashMiddleware': 725, „scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware“: 810, } # Deduplizierungsfilter DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter' #Splashs HTTP-Cache verwenden HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage' # Befolgen Sie die Robots.txt-Regeln ROBOTSTXT_OBEY = Falsch 4.3 Kein Spritzen Verbesserung in Scrapy importieren Klasse NoSplashSpider(scrapy.Spider): Name = "kein_Splash" erlaubte_Domänen = ['baidu.com'] start_urls = ['https://www.baidu.com/s?wd=13161933309'] def parse(selbst, Antwort): mit open('no_splash.html', 'w') als f: f.schreiben(Antwort.Body.decode()) 4.4 Verwenden von SplashScrapy importieren from scrapy_splash import SplashRequest # Verwenden Sie das Anforderungsobjekt, das vom Scrapy_splash-Paket bereitgestellt wird. Klasse WithSplashSpider(scrapy.Spider): Name = "mit_Splash" erlaubte_Domänen = ['baidu.com'] start_urls = ['https://www.baidu.com/s?wd=13161933309'] def start_requests(selbst): Ergebnis SplashRequest(self.start_urls[0], Rückruf=self.parse_splash, args={'wait': 10}, # Maximales Timeout, Einheit: Sekunden endpoint='render.html') # Feste Parameter des Splash-Dienstes verwenden def parse_splash(self, response): mit open('with_splash.html', 'w') als f: f.schreiben(Antwort.Body.decode()) 4.5 Führen Sie zwei Crawler separat aus und beobachten Sie das Phänomen4.5.1 Zwei Crawler separat ausführen Scrapy Crawlen, kein Splash Scrapy Crawl mit_Splash 4.5.2 Betrachten Sie die beiden erhaltenen HTML-Dateien Kein Spritzen Verwenden von Splash 4.6 Fazit
5. Mehr erfahren
6. Zusammenfassung1. Die Rolle der Scrapy_Splash-Komponente
2. Verwendung der Scrapy_Splash-Komponente
3. Spezifische Konfiguration von Scrapy_Splash SPLASH_URL = "http://127.0.0.1:8050" DOWNLOADER_MIDDLEWARES = { 'scrapy_splash.SplashCookiesMiddleware': 723, 'scrapy_splash.SplashMiddleware': 725, „scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware“: 810, } DUPEFILTER_CLASS = "scrapy_splash.SplashAwareDupeFilter" HTTPCACHE_STORAGE = "scrapy_splash.SplashAwareFSCacheStorage" Dies ist das Ende dieses Artikels über erweiterte Crawler – die Verwendung der Scrapy_splash-Komponente für automatisches JS-Rendering. Weitere relevante Inhalte zur Verwendung der JS Scrapy_splash-Komponente finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Tutorial zur Installation der komprimierten MySQL8-Paketversion unter Win10
>>: Zwei Möglichkeiten zur Installation des Linux-Subsystems in Windows 10 (mit Bildern und Text)
Die Volltextindizierung erfordert eine spezielle ...
Zeit(); Funktion Funktionsprototyp: time_t time(t...
Viele Unternehmen bieten derzeit Sonderaktionen m...
1. Befehlseinführung Der Befehl stat wird verwend...
Vorwort Letzte Woche fragte mich ein Kollege: „Br...
In diesem Artikel wird der spezifische Code von j...
Technischer Hintergrund Diese Anwendung verwendet...
Klassifizierung der Website-Erfahrung 1. Sinneser...
In Bezug auf High Performance MySQL Version 3 (Ab...
Der offizielle Quellcode von monaco-editor-vue la...
Nachdem die Quelle des Iframes auf „about:blank“ g...
Sie können dieses Logo lokal als .rar-Datei speic...
Voraussetzung: Das Webentwickler-Plugin wurde inst...
Der Blogger sagte : Ich habe eine Reihe von Blogb...
1. VMware herunterladen und installieren Verknüpf...