在scrapyrt的POST文档中,我们可以传递这样的JSON请求,但是如何在start_requests中访问类别和项目之类的元数据呢?
{
"request": {
"meta": {
"category": "some category",
"item": {
"discovery_item_id": "999"
}
},
, "start_requests": true
},
"spider_name": "target.com_products"
}
答案 0 :(得分:1)
scrapyRT中有一个未合并的PR,它增加了对在POST请求中传递额外参数的支持。
1)修补scrapyrt文件夹中的resources.py文件。 在我的情况下是/usr/local/lib/python3.5/dist-packages/scrapyrt/resources.py
替换为以下代码:https://github.com/gdelfresno/scrapyrt/commit/ee3be051ea647358a6bb297632d1ea277a6c02f8
2)现在,您的蜘蛛程序可以使用self.param1
访问新参数ScrapyRT curl示例:
curl -XPOST -d '{
"spider_name":"quotes",
"start_requests": true,
"param1":"ok"}' "http://localhost:9080/crawl.json"
在蜘蛛中
def parse(self, response):
print(self.param1)
致谢