2010-12-18 5 views
2

Ich habe eine Menge Fehler erhalten, die an meine E-Mail-Adresse gesendet wurden, weil Web-Crawler Teile meiner Site ohne jegliche Anfragedaten überfielen. Ich fragte mich, wie man in Django am besten mit Web-Crawlern umgehen kann. Soll ich eine Umleitung vornehmen, wenn ich auf ein leeres QueryDict stoße?Wie behandelt man Web-Crawler in Django?

Antwort

1

Sie könnten die Implementierung eines robots.txt in Erwägung ziehen, um zu verhindern, dass Crawler auf Bereiche Ihrer Website zugreifen, die nur für Menschen gedacht sind, z. B. Formulare.

-1

Gut erzogene Crawler sollten nur GET-Anfragen ausführen. Formulare sollten alles andere als GET-Anforderungen sein.

Ruby und Rails verwendet CRUD Mapping

Create -> POST, 
READ -> GET, 
Update -> PUT, 
Delete -> DELETE 

Nur Dinge, ohne zusätzliche Informationen sein GET-Anfragen sollten.

+0

"Formulare sollten alles andere als GET-Anfragen sein" -> Was ist mit '

' –

+0

Sollte entmutigt werden. Schauen Sie auf der Twitter-Homepage nach, ob es GET-Formulare gibt. – EnabrenTane

+0

Mein Crawler benutzt immer DELETE .../s – titaniumdecoy

1

Ich denke, Ihre Ansichten sollten mit jeder Anfrage funktionieren, auf der Listenrückseite mit der Meldung "Falsche Anfrage". 500 ist hässlich. Sind Sie sicher, dass der Benutzer die Seite nicht ohne Anfragedaten öffnet? Die "get" -Methode von QueryDict kann bei Standardwerten helfen.