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)
Inhaltsverzeichnis 01 Was ist Kubernetes? 02 Der ...
Über Nginx, eine leistungsstarke, leichte Webserv...
Die Player, die wir auf Webseiten sehen, sind nic...
Ich möchte Ihnen von einem aktuellen Fall erzähle...
Wenn unter Linux eine Datei erstellt wird, ist de...
Normale MySQL-Sortierung, benutzerdefinierte Sort...
Vorwort Als ich heute ein Feedback-Formular für e...
So lösen Sie das Problem, dass nach dem Neustart ...
Inhaltsverzeichnis Vorwort Umfeld Installieren Er...
Dieser Artikel stellt den Import und Export von D...
Hexadezimalcodetabelle verschiedener Farben [Teil ...
Code kopieren Der Code lautet wie folgt: <html...
Inhaltsverzeichnis Klicken Sie zunächst auf das E...
1.vue-Verpackung Hier verwenden wir den Befehl „v...
MySQL verarbeitet doppelte Daten Einige MySQL-Tab...