Ich habe viele Themen durchsucht, aber scheine keine Antwort auf meine spezifische Frage zu finden. Ich habe einen Crawl-Spider für eine Website erstellt und es funktioniert perfekt. Dann habe ich einen ähnlichen erstellt, um eine ähnliche Website zu durchsuchen, aber diesmal habe ich ein kleines Problem. Gehen wir zum Geschäft:
Meine Start-URL sieht wie folgt aus: www.example.com. Die Seite enthält die Links, auf die ich meinen Spider anwenden möchte, sehen aus wie:
- www.example.com/locationA
- www.example.com/locationB
- www.example.com/locationC
...
Ich habe jetzt ein Problem: Jedes Mal, wenn ich die Start-URL aufrufe, wird automatisch zu www.example.com/locationA weitergeleitet und alle Links, auf denen mein Spider funktioniert, enthalten
- www.example.com/locationB
- www.example.com/locationC ...
Also mein Problem ist, wie ich die www.example.com/locationA in den zurückgegebenen URLs einbeziehen kann. Ich habe sogar die Protokollinformationen wie folgt erhalten:
-2011-11-28 21:25:33+1300 [example.com] DEBUG: Umleiten (302) zu von http://www.example.com/>
-2011-11-28 21:25:34+1300 [example.com] DEBUG: Umleiten (302) zu (Referer: Keiner)
- 2011-11-28 21:25:37+1300 [example.com] DEBUG: Umleiten (302) zu (Referer: www.example.com/locationB)
Ausgabe aus parse_item: www.example.com/locationB
....
Ich denke, das Problem könnte damit zusammenhängen, dass (Referer: Keiner) irgendwie ist. Könnte bitte jemand etwas Licht darauf werfen??
Ich habe dieses Problem eingegrenzt, indem ich die Start-URL auf www.example.com/locationB geändert habe. Da alle Seiten die Listen aller Standorte enthalten, funktioniert mein Spider diesmal auf:
-www.example.com/locationA
-www.example.com/locationC ...
Kurz gesagt, ich suche nach dem Weg, die URL, die mit der Start-URL übereinstimmt (oder von ihr umgeleitet wird), in die Liste aufzunehmen, auf der der parse_item-Callback arbeiten wird.