Ценность Scrapyd Jobid внутри паука - PullRequest
7 голосов
/ 11 марта 2012

Framework Scrapy - сервер Scrapyd.

У меня есть некоторые проблемы с получением значения jobid внутри паука.

После публикации данных на http://localhost:6800/schedule.json ответ

status = ok
jobid = bc2096406b3011e1a2d0005056c00008

Но мне нужно использовать этот идентификатор работы внутри текущего паука во время процесса. Его можно использовать для открытия файла {jobid} .log или по другим динамическим причинам.

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

Но я вижу этот jobid только после того, как задача завершена :( Спасибо!

Ответы [ 2 ]

5 голосов
/ 08 января 2015

Вы можете получить его из переменной окружения SCRAPY_JOB :

os.environ['SCRAPY_JOB']
5 голосов
/ 11 марта 2012

Я думаю, что есть более простой способ, но вы можете извлечь идентификатор задания из аргументов командной строки.IIRC, Скрапид запускает паука, давая ему задание по параметрам.Просто изучите sys.args там, где вам нужен jobid.

...