为所有scrapy Spider编写函数
所以我正在尝试编写可以从所有scrapy Spider调用的函数。 在我的项目中是否有一个地方可以定义这些函数,或者需要在每个spider中导入它们为所有scrapy Spider编写函数,scrapy,scrapy-spider,Scrapy,Scrapy Spider,所以我正在尝试编写可以从所有scrapy Spider调用的函数。 在我的项目中是否有一个地方可以定义这些函数,或者需要在每个spider中导入它们 谢谢你不能在python中隐式导入代码(至少在没有破解的情况下),毕竟显式比隐式好——所以这不是一个好主意 然而,在scrapy中,使用具有通用函数和方法的基本Spider类是非常常见的 假设您有以下树: ├── myproject │ ├── __init__.py │ ├── spiders │ │ ├── __init__.p
谢谢你不能在python中隐式导入代码(至少在没有破解的情况下),毕竟显式比隐式好——所以这不是一个好主意 然而,在scrapy中,使用具有通用函数和方法的基本Spider类是非常常见的 假设您有以下树:
├── myproject
│ ├── __init__.py
│ ├── spiders
│ │ ├── __init__.py
│ │ ├── spider1.py
│ │ ├── spider2.py
├── scrapy.cfg
我们可以在spider/\uuuu init\uuuuuuy.py
中创建一个基础spider:
class BaseSpider(Spider):
def common_parse(self, response):
# do something
并从你的蜘蛛身上继承:
from myproject.spiders import BaseSpider
class Spider1(BaseSpider):
def parse(self, response):
# use common methods!
if 'indicator' in response.body:
self.common_parse(response)
谢谢@Granitosaurus,但我在尝试此操作时遇到一个错误:
ImportError:在使用您显示的文件夹结构名称时无法导入name BaseSpider
。尝试替换myproject
,当我使用scrapy.spider导入BaseSpider的时,我能够运行spider,但它找不到函数。有没有关于我可能在哪里出错的建议?@Casper你确定你的树结构是正确的吗?您可能需要安装自己的包,或者使用模块所在的位置更新PathnPath,以便python能够实际找到导入。类似的问题:原来我没有使用正确的\uuuu init\uuuuu.py
。谢谢你的解释!