Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.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-为手动导入pythjon创建功能管道_Python_Scrapy_Pipeline - Fatal编程技术网

Python Scrapy-为手动导入pythjon创建功能管道

Python Scrapy-为手动导入pythjon创建功能管道,python,scrapy,pipeline,Python,Scrapy,Pipeline,在Scrapy中,我有一个管道,它为它所刮取的每个项目执行一系列工作,我希望创建一个函数,可以用来手动创建管道的实例,并传递我需要的信息 我没有OOP经验,以前从未使用过类。我看过的所有资源都包括一个init方法,它可以帮助我理解,但我只是迷路了 下面是我想尝试的一个片段,但我真的不想破坏任何东西 这似乎也是多余的,但再一次,我不知道我在做什么。因为我需要能够从几个不同的地方运行这个,我认为这是最有意义的,但任何输入都将不胜感激 class ItemPipeline: def proc

在Scrapy中,我有一个管道,它为它所刮取的每个项目执行一系列工作,我希望创建一个函数,可以用来手动创建管道的实例,并传递我需要的信息

我没有OOP经验,以前从未使用过类。我看过的所有资源都包括一个init方法,它可以帮助我理解,但我只是迷路了

下面是我想尝试的一个片段,但我真的不想破坏任何东西

这似乎也是多余的,但再一次,我不知道我在做什么。因为我需要能够从几个不同的地方运行这个,我认为这是最有意义的,但任何输入都将不胜感激

class ItemPipeline:

    def process_item(self, item, spider):

        do a bunch of important stuff

    def open_spider(self, spider):
        initialize db

    def close_spider(self, spider):
        close db

def functional_pipeline(argument1 =1, argument2 =False, argument3 ="Manual"):
  ITEM = {argument1: argument1,
          argument2: argument2,
          argument3: argument3}
   pipe = ItemPipeline()
   pipe.item = ITEM
   pipe.open_spider()
   pipe.process_item(item=pipe.item)
   pipe.close_spider()

python类的
\uuu init\uu
方法是执行
pipe=itempippeline()
时运行的方法。它不是强制性的——只有当您希望在此步骤中运行一些代码时才真正需要它。对于重用ItemPipeline的当前用例,您不需要一个

对于函数的其余部分,不需要将项设置为spider的属性,但需要更改spider参数以使其成为可选的。这是你需要的代码

类项目管道:
def过程_项目(自身、项目、蜘蛛=无):
做一些重要的事情
def open_卡盘(自身,卡盘=无):
初始化数据库
def close_卡盘(自身,卡盘=无):
关闭数据库
def功能_管道(argument1=1,argument2=False,argument3=“手动”):
ITEM={argument1:argument1,
论点2:论点2,
argument3:argument3}
管道=项目管道()
管道。打开十字轴()
管道.工艺\项目(项目)
管道。关闭十字轴()