关于python动态导入模块的使用

自定义爬虫框架(基于scrapy)时,解决用户直接在配置文件setting里添加自定义中间件,管道以及爬虫,无需在main.py中手动导入模块的问题

代码示范:

用户配置文件setting.py自定义中间件、管道以及爬虫如下:

SPIDERS=[
    "spiders.baidu.BaiduSpider",
    "spiders.douban.DoubanSpider",
]

PIPILINES=[
    "pipelines.BaiduPipeline",
    "pipelines.BaiduPipeline2",
    "pipelines.DoubanPipeline",
    "pipelines.DoubanPipeline2",
]

SPIDERS_MIDDLEWARES=[
    "middlewares.SpiderMiddleware",
    "middlewares.SpiderMiddleware2",
]

DOWNLOADER_MIDDLEWARES=[
    "middlewares.DownloaderMiddleware",
    "middlewares.DownloaderMiddleware2",
]

框架engine.py处理动态导入模块代码如下:

import importlib
def _auto_import_module(module_list):
    intance=[]
	for module in module_list:
	    path_name = module[:module.rfind(".")]
	    class_name = module[module.rfind(".") + 1:]
	    path = importlib.import_module(path_name)
	    cls = getattr(path, class_name)
        instance.append(cls())
    return instance

cls即为获取到的类对象

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值