python - 如何获取 scrapyrt 的 POST 元数据?
问题描述
在 scrapyrt 的 POST 文档中,我们可以像这样传递 JSON 请求,但是如何访问 start_requests 中的 category 和 item 等元数据?
{
"request": {
"meta": {
"category": "some category",
"item": {
"discovery_item_id": "999"
}
},
, "start_requests": true
},
"spider_name": "target.com_products"
}
解决方案
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 -XPOST -d '{
"spider_name":"quotes",
"start_requests": true,
"param1":"ok"}' "http://localhost:9080/crawl.json"
在你的蜘蛛
def parse(self, response):
print(self.param1)
问候
推荐阅读
- templates - 使用 AMI 从快照启动模板,不可能终止卷
- scala - 如何从余弦相似度矩阵中获取项目 ID?
- git - 我不想自动进行 git prune 的用例是什么?
- java - 使用 BeanDefinitionRegistryPostProcessor 从 org.springframework.core.env.PropertySource 加载配置 POJO
- linux - 如何在 linux bash 提示符下拆分模式上的字符串并返回模式的最后一个实例以及之后的所有内容
- php - 使用 file_get_contents 获取属性值
- python - 数据未附加到我的输出文件中,python csv 模块 3.6
- ruby-on-rails - Rspec 测试关联导致失败
- node.js - express 能否同时处理两个或多个请求?
- javascript - 如何实现确定性/基于刻度的游戏循环?