Wenn das Javascript geladen ist, wird eine weitere Ajax-Anfrage gestellt, bei der Cookies in der Antwort gesetzt werden sollen. Splash speichert jedoch keine Cookies über mehrere Anfragen hinweg. Gibt es eine Möglichkeit, die Cookies über alle Anfragen hinweg zu halten? Oder weisen Sie sie manuell zwischen den einzelnen Anfragen zu.Wie setze ich Cookies in Scrapy + Splash, wenn JavaScript mehrere Anfragen stellt?
0
A
Antwort
1
Ja, es gibt ein Beispiel in scrapy-splash README - siehe Session Handling Abschnitt. Stellen Sie zunächst sicher, dass alle Einstellungen korrekt sind. Verwenden Sie dann SplashRequest(url, endpoint='execute', args={'lua_source': script})
, um Scrapy-Anfragen zu senden. Skript Rendering sollte wie folgt sein:
function main(splash)
splash:init_cookies(splash.args.cookies)
-- ... your script
return {
cookies = splash:get_cookies(),
-- ... other results, e.g. html
}
end
Es gibt auch ein komplettes Beispiel mit Cookiebehandlung, Kopf Handhabung usw. in scrapy-splash README - siehe letztes Beispiel here.
Verwandte Themen
- 1. Scrapy Splash Log-in
- 2. Scrapy Shell und Scrapy Splash
- 3. Scrapy + Splash + ScrapyJS
- 4. Bildinhalt zurücksenden von Scrapy-Splash
- 5. Scrapy-Splash mit Tor
- 6. Splash Speichergrenze (scrapy)
- 7. Scrapy Splash Screenshots?
- 8. Scrapy + Splash: Verbindung verweigert
- 9. Scrapy + Splash = Verbindung verweigert
- 10. Wie setze ich Cookies in Alamofire?
- 11. Lesen Sie Cookies von Splash Anfrage
- 12. Verwenden scrapy + splash return html
- 13. Wie Sie mehrere Cookies in Javascript überprüfen
- 14. Scrapy: Wie setze ich scrapy start_urls aus einer Einstellungsdatei?
- 15. mit Proxy mit scrapy-splash
- 16. Making Splash, Scrapy und Scrapoxy arbeiten zusammen
- 17. Wie implementiert Scrapy-Splash Proxy-Profile?
- 18. Scrapy Splash - Bleiben Sie geloggt
- 19. wie man Cookies in scrapy überschreibt/verwendet
- 20. Wie setze ich Cookies manuell in ein Glas?
- 21. Scrapy - Sollte ich Cookies beim Crawlen aktivieren
- 22. Scrapy-Splash kann die Site nicht laden
- 23. Mehrere Cookies in Cookie
- 24. So senden Sie JavaScript und Cookies in Scrapy aktiviert?
- 25. Scrapy Stapelüberlauf von Anfragen
- 26. Mehrere Anfragen an ein einzelnes Feld in Scrapy
- 27. Automatisieren Sie die Seitenrolle in Splash und Scrapy nach unten
- 28. Set Geolocation für Splash-Browser (Scrapy/Python)
- 29. scrapy-Splash-Skript zu finden, CSS-Selektor nicht
- 30. Scrapy + Splash: Element kann nicht ausgewählt werden
Danke für die Hilfe Mikhail, was passiert, wenn ich Cookies für Aufrufe im Javascript setzen muss, 4 verschiedene Anfragen passieren, wenn ich 'splash: go (url)', möchte ich Cookies nach der zweiten Anfrage setzen –
Sorry, ich verstehe die Frage nicht ganz. Cookies, die in AJAX-Antworten empfangen werden, sollten mit Splash-Cookiejar zusammengeführt und in splash zurückgegeben werden: get_cookies(). splash: init_cookies() setzt den Inhalt eines Browser-Cookiejars, der Browser sollte diese Cookies für alle Anfragen verwenden, einschließlich AJAX-Anfragen. Daher sollte das obige Skript unabhängig davon funktionieren, wie viele Anfragen Sie in Ihrem Lua-Skript stellen. –
Oh, ich verstehe jetzt, also denke ich, das Problem ist nicht mit den Keksen. Ich versuche grundsätzlich, über Splash auf Crunchbase.com zuzugreifen, sie haben einen seltsamen Bot-Schutz. Der Zugriff von einem Browser funktioniert immer. Haben Sie eine Idee, wie Sie das Verhalten von Splash genau wie in einem Browser machen können? –