2012-03-11 21 views
8

Çerçeve Scrapy - Scrapyd sunucusu.Örümcek içinde Scrapyd jobid değeri

Örümceğin içinde jobid değeri elde etmekle ilgili bir sorunum var. http://localhost:6800/schedule.json tepki sonrası verilerinin ardından

status = ok 
jobid = bc2096406b3011e1a2d0005056c00008 

olduğu Ama sürecinde cari örümcek içinde bu jobid kullanmak gerekir. Açık {jobid} .log dosyası veya diğer dinamik nedenler için kullanılabilir.

class SomeSpider(BaseSpider): 
    name = "some" 
    start_urls = ["http://www.example.com/"] 
    def parse(self, response): 
     items = [] 
     for val in values: 
      item = SomeItem() 
      item['jobid'] = self.jobid # ???! 
      items.append(item) 
     return items 

Ama görev finihed yalnızca sonra bu jobid :(teşekkürler bakın!

cevap

5

ben daha kolay bir yolu yoktur sanırım, ama komut satırı args gelen iş id çıkarabilir. IIRC, scrapyd başlattı bir . o parametrelerde bir jobid veren örümcek Sadece jobid ihtiyaç sys.args keşfetmek

+1

Tüm genius kolaydır;) Teşekkürler dostum! bazı örnek: 'halinde (len (sys.argv)> 2): halinde (sys.argv içinde '_job' [3]): self.jobid = sys.argv [3] .rsplit (' = ') – fcmax

+0

@Maxim, çalıştığına sevindim. Lütfen, sizin için çalışan cevapları kabul etmeyi ve yanıtlamayı unutmayın. – warvariuc

+0

15 puanlık itibar talep ediyor. Biraz büyümeden sonra bu yazıya geri döneceğim;) Teşekkürler. – fcmax

5

sen değişken SCRAPY_JOBçevre adresinden elde edebilirsiniz.

os.environ['SCRAPY_JOB'] 
İlgili konular