Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我应该如何在scrapy中选择输入处理器和输出处理器,我不&x27;我看不出他们之间有什么不同,因为他们最终会被输送出去_Python_Scrapy - Fatal编程技术网

Python 我应该如何在scrapy中选择输入处理器和输出处理器,我不&x27;我看不出他们之间有什么不同,因为他们最终会被输送出去

Python 我应该如何在scrapy中选择输入处理器和输出处理器,我不&x27;我看不出他们之间有什么不同,因为他们最终会被输送出去,python,scrapy,Python,Scrapy,在本发明中,当使用先前收集的数据调用输出处理器(并使用输入处理器处理)时,输入处理器在接收到提取的数据后立即处理该数据。输出处理器的结果是分配给项目的最终值 我应该如何选择scrapy中的输入处理器和输出处理器,我现在真的很困惑 此外,itemloader类中的定义处理器与field中的定义处理器是否有任何不同?关键区别在于输入处理器分别运行在每个选定值列表上,而输出处理器运行在输入处理器返回的所有值列表上。当您仅将单个选择器附加到字段时,这种区别并不明显。但是,如果您添加了多个选择器(如在其中

在本发明中,当使用先前收集的数据调用输出处理器(并使用输入处理器处理)时,输入处理器在接收到提取的数据后立即处理该数据。输出处理器的结果是分配给项目的最终值

我应该如何选择scrapy中的输入处理器和输出处理器,我现在真的很困惑


此外,itemloader类中的定义处理器与field中的定义处理器是否有任何不同?

关键区别在于输入处理器分别运行在每个选定值列表上,而输出处理器运行在输入处理器返回的所有值列表上。当您仅将单个选择器附加到字段时,这种区别并不明显。但是,如果您添加了多个选择器(如在其中),您会注意到它。换句话说,在这样的场景中,只有当您可以访问所有值时,才能最终决定选择哪些值

通常,您会使用输入处理器对值进行文本预处理(如更改大小写、去除空格等),而输出处理器用于选择最终值

当然,如果你没有特定的需求,你也不需要定义。一个典型的场景是,当您只选择单个值时,没有输入处理器,只有一个输出处理器

此外,虽然可以在输出处理器中执行相同的文本预处理,但最好将事情分开,以防计划重用处理器


关于定义处理器的位置:它会影响优先级顺序(如前所述),但大多数只有在您开始为不同的项目重用处理器和加载器并且希望覆盖某些项目时才会真正起作用。对于单个项目和单个加载器,没有实际的区别。

欢迎使用StackOverflow。当您在问题中引用ceratin文档时,添加指向此文档的链接可能会有所帮助,以便帮助您的人获得更多信息。