2014-12-14 1 views
0

나는 두 개의 치료 거미를 가지고 있는데, spider1spider2이라고합시다. spider1은 일부 페이지를 크롤링하고 파일의 URL을 수집합니다. 여기 코드는 다음과 같습니다치료 :이 간단한 파이프 라인에 무엇이 잘못 되었습니까

class FileWriterPipeline(object): 

    def __init__(self): 
     self.file = open('somefile.txt'), 'wb') 

    def process_item(self, item, spider): 
     if spider.name == 'spider1': 
      line = item['url'] + "\n" 
      self.file.write(line) 
      return item 

문제는 최대한 빨리 spider2을 실행으로, somefile.txt을 깨끗이 닦아지고 있다는 점이다. 아무도 여기서 무엇이 잘못되었는지 알 수 있습니까?

에 관계없이 즉시 전화로, 나중에 무엇의

답변

1

다음 'wb' 인수

open('somefile.txt', 'wb') 

file is erased completely. 추가하려는 경우 대신 'ab'을 사용해야합니다.

+0

아아 .. 그리고'__init__'는 어떤 거미와 관계없이'process_item'보다 먼저 호출됩니다. 확인하겠습니다 .' – yayu

+0

* 그렇지 않으면 파일이 열려 있지 않을 것입니다! – Rufflewind

관련 문제