Как получить POST метаданные scrapyrt? - PullRequest
0 голосов
/ 07 сентября 2018

В POST-документации scrapyrt мы можем передать JSON-запрос, подобный этому, но как получить доступ к метаданным, таким как категория и элемент, в start_requests?

{
     "request": {
         "meta": {
            "category": "some category",
            "item": {
                "discovery_item_id": "999"
            }
        },
        , "start_requests": true
    },
    "spider_name": "target.com_products"
}

Ссылка: https://scrapyrt.readthedocs.io/en/latest/api.html#id1

1 Ответ

0 голосов
/ 27 октября 2018

В scrapyRT есть неотправленный PR, который добавляет поддержку для передачи дополнительных параметров в запросе POST.

1) Патч файл resources.py, расположенный в папке scrapyrt. В моем случае был /usr/local/lib/python3.5/dist-packages/scrapyrt/resources.py

Заменить этим кодом: https://github.com/gdelfresno/scrapyrt/commit/ee3be051ea647358a6bb297632d1ea277a6c02f8

2) Теперь ваш паук может получить доступ к новым параметрам с помощью self.param1

Пример скручивания ScrapyRT:

curl -XPOST -d '{
"spider_name":"quotes",
"start_requests": true,
"param1":"ok"}' "http://localhost:9080/crawl.json"

В вашем пауке

def parse(self, response):
    print(self.param1)

Привет

...