Ich arbeite gerade an Scrapy, um die Website zu crawlen. Ich habe etwas über Unittest in Python. Aber, wie kann ich den unittest schreiben, um zu überprüfen, dass der Link funktioniert, und item['location']
, item['details']
geben den Wert zurück oder nicht? Ich habe Scrapy-Vertrag gelernt, kann aber nichts verstehen. Also, wie kann man in diesem Fall den Unittest schreiben?
Wenn wir speziell darüber sprechen, wie man die Spinnen (nicht Pipelines oder Loader) testet, dann haben wir eine "falsche Antwort" aus einer lokalen HTML-Datei erhalten. Beispielcode:
%Vor% Rufen Sie dann in Ihrer TestCase
-Klasse die fake_response()
-Funktion auf und geben Sie die Antwort an den parse()
-Rückruf:
Abgesehen davon sollten Sie definitiv Item Loaders
mit Eingabe- und Ausgabeprozessoren verwenden - Dies würde helfen, eine bessere Modularität und damit Isolation zu erreichen - Spider würde nur Item-Instanzen liefern, Datenvorbereitung und -modifikation würden innerhalb des Loaders verkapselt werden, was Sie separat testen würden.
Tags und Links python unit-testing web-scraping scrapy scrapy-spider