2013-03-29 7 views
6

O ile mogłem się dowiedzieć z dokumentacji i różnych dyskusji w Internecie, usunięto możliwość dodawania wartości domyślnych do pól w przedmiocie do złomu.Scrapy: Domyślne wartości dla pozycji i pól. Jaka jest najlepsza implementacja?

to nie działa

category = Field(default='null') 

więc moje pytanie: co jest dobrym sposobem init pola o wartości domyślnej?

Próbowałem już wdrożyć go jako potok przedmiotów, jak zasugerowano tutaj. bez powodzenia. https://groups.google.com/forum/?fromgroups=#!topic/scrapy-users/-v1p5W41VDQ

+0

Dlaczego nie ma szczęścia? co się stało? –

+1

to po prostu nie działa. Zaimplementowałem potok elementów i dodałem go do ITEM_PIPELINES w moim pliku settings.py. Potem spodziewałem się, że pewne pola wypełnią się domyślnymi danymi, na wypadek gdyby nie mogły zostać wypełnione przez scrapy ... niestety pola pozostają puste – Jabb

+0

Czy jesteś pewien, że twoja potok "process_item" jest uruchomiony? Wklej tutaj swój kod potoku, abyśmy mogli go zobaczyć. –

Odpowiedz

3

zorientowałem się, na czym polegał problem. rurociąg działa (kod podany jest w celu odniesienia się do innych osób). moim problemem było to, że dołączam wartości do pola. i chciałem, aby domyślna metoda działała na jednej z tych wartości listowych ... wybrała inny sposób i to działa. Teraz wdrażam go za pomocą niestandardowej metody procesora setDefault.

class DefaultItemPipeline(object): 

def process_item(self, item, spider): 
    item.setdefault('amz_VendorsShippingDurationFrom', 'default') 
    item.setdefault('amz_VendorsShippingDurationTo', 'default') 
    # ... 
    return item 
Powiązane problemy