10

FrameworkScrapy-Scrapydサーバー。

スパイダー内でjobid値を取得するのに問題があります。

http:// localhost:6800 / schedule.jsonにデータを投稿した後、応答は次のようになります。

status = ok
jobid = bc2096406b3011e1a2d0005056c00008

しかし、プロセス中に現在のスパイダー内でこのジョブIDを使用する必要があります。これは、開いている{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を見る:(ありがとう!

4

3 に答える 3

10

SCRAPY_JOB 環境変数から取得できます:

os.environ['SCRAPY_JOB']
于 2015-01-08T06:32:23.577 に答える
6

もっと簡単な方法があると思いますが、コマンド ライン引数からジョブ ID を抽出できます。IIRC、scrapyd はスパイダーを起動し、パラメーターにジョブ ID を指定します。jobidsys.argsが必要な場所を調べてください。

于 2012-03-11T13:48:15.283 に答える