2017-09-22 2 views
0

, scrapy의 항목은 다음과 같습니다Scrapy : None으로 항목을 초기화하는 방법? 예를 들어

class CrawlerItem(scrapy.Item): 

    name = scrapy.Field() 

    country = scrapy.Field() 

    title = scrapy.Field() 

    subject = scrapy.Field() 

    ...... 
item = CrawlerItem() 

가 어떻게 없음으로 항목의 필드 값을 모두 초기화 할 수 있을까? 지금까지이 많은 분야가있어,

item['name'] = None 
item['country'] = None 
... 

을하지만 문제는 다음과 같습니다

나는이 작업을 수행 할 수있다. 할 수있는 방법이 있습니까? item.set_all(None)

답변

1
그냥 항목 클래스

class CrawlerItem(scrapy.Item): 

    name = scrapy.Field() 
    country = scrapy.Field() 
    title = scrapy.Field() 
    subject = scrapy.Field() 

    def set_all(self, value): 
     for keys, _ in self.fields.items(): 
      self[keys] = value 

그리고에 self.fields을 반복 할 필요가

다음 코드에서 당신은

item = CrawlerItem() 
item.set_all(None) 
print(item) 
+0

대를 호출 할 수 있습니다! 공장! 감사! –