Ich möchte, dass Scrapy meine Anfragen nicht URL-codiert. Ich sehe, dass scrapy.http.Request scrapy.utils.url importiert, die w3lib.url importiert, die die Variable _ALWAYS_SAFE_BYTES enthält. Ich muss nur _ALWAYS_SAFE_BYTES eine Reihe von Zeichen hinzufügen, aber ich weiß nicht, wie ich das in meiner Spider-Klasse machen soll.
scrapy.http.Request relevante Zeile:
%Vor%canonicalize_url stammt aus scrapy.utils.url, relevante Zeile in scrapy.utils.url:
%Vor%safe_url_string () stammt von w3lib.url, relevante Zeilen in w3lib.url:
%Vor%in w3lib.url.safe_url_string ():
%Vor% Ich wollte nicht [
und ]
codieren und das habe ich gemacht.
Beim Erstellen eines Request
-Objekts wendet scrapy einige URL-Codierungsmethoden an. Um diese zu ändern, können Sie eine benutzerdefinierte Middleware verwenden und die URL Ihren Bedürfnissen anpassen.
Sie könnten ein Downloader Middleware
wie folgt verwenden:
Vergessen Sie nicht, die Middleware in settings.py
so zu aktivieren:
Mein Projekt heißt so
und im Ordner befindet sich eine Datei middlewares.py
. Sie müssen diese an Ihre Umgebung anpassen.
Dank geht an: Frank Martin
Tags und Links python url url-encoding web-crawler scrapy