Scrapy Spider中间件将一个项拆分为多值密钥上的多个项

scrapy-splitvariants的Python项目详细描述


https://travis-ci.org/scrapy-plugins/scrapy-splitvariants.svg?branch=masterhttps://codecov.io/gh/scrapy-plugins/scrapy-splitvariants/branch/master/graph/badge.svg

SplitVariantsMiddleware是一个用于拆分 当一个“variants”键具有多个值时,将单个项转换为多个项。

示例用法

假设您的spider输出一个具有不同大小选项的项 (例如来自电子商务网站):

item = {"id": 12,
        "name": "Big chair",
        "variants": [{"size": "XL", "price": 200, "currency": "USD"},
                     {"size": "L", "price": 100, "currency": "USD"}]}

当您启用SplitVariantsMiddleware时,这个项目将变成 两个具有不同变量值的项目放入不同的项目:

{"id": 12, "name": "Big chair", "size": "XL", "price": 200, "currency": "USD"}
{"id": 12, "name": "Big chair", "size": "L", "price": 100, "currency": "USD"}

安装

使用pip

$ pip install scrapy-splitvariants

配置

  1. 通过将其包含在^{tt5}中来添加SplitVariantsMiddleware。$ 在settings.py文件中:

    SPIDER_MIDDLEWARES = {
        'scrapy_splitvariants.SplitVariantsMiddleware': 100,
    }
    

    这里,priority100只是一个例子。 根据您可能已经启用的其他中间件设置其值。

  2. 使用SPLITVARIANTS_ENABLED设置为^{tt9}启用中间件$ 在您的setting.py中。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Clojure关键字在内存中的大小是多少?   Java中有固定长度的通用数组对象吗?   PostgreSQL:通过Java更新我的用户表   错误:使用java解析xml   java Json显示列表中对象的名称   java比较JodaTime时区   与JAVA中的API和包的区别?   java的int值在for循环中不改变   谷歌应用引擎中的java RSA   迁移到spring 5后出现java非法字符错误   java Websphere管理控制台不工作   JavaGSON如何始终在json中包含毫秒?   带有空格和双引号的windows Java ProcessBuilder命令参数失败   java错误:重复的zip条目[43.jar:org/apache/http/annotation/NotThreadSafe.class]