小编use*_*861的帖子

何时以及如何在一个Scrapy项目中使用多个蜘蛛

我在用Scrapy,很棒!如此快速地构建一个爬虫.随着网站数量的增加,需要创建新的蜘蛛,但这些网站坐的是同一类型,所有这些蜘蛛使用相同的项目,管道,解析过程

项目目录的内容:

test/
??? scrapy.cfg
??? test
    ??? __init__.py
    ??? items.py
    ??? mybasespider.py
    ??? pipelines.py
    ??? settings.py
    ??? spider1_settings.py
    ??? spider2_settings.py
    ??? spiders
        ??? __init__.py
        ??? spider1.py
        ??? spider2.py
Run Code Online (Sandbox Code Playgroud)

为了减少源代码冗余,mybasespider.py有一个基础蜘蛛MyBaseSpider,95%的源代码都在其中,所有其他蜘蛛都从它继承,如果蜘蛛有一些特殊的东西,覆盖一些 class methods,通常只需要添加几行源代码来创建一个新的蜘蛛

将所有常用设置放入settings.py,一个蜘蛛的特殊设置中[spider name]_settings.py,例如:

特别设置spider1spider1_settings.py:

from settings import *

LOG_FILE = 'spider1.log'
LOG_LEVEL = 'INFO'
JOBDIR = 'spider1-job'
START_URLS = [
    'http://test1.com/',
]
Run Code Online (Sandbox Code Playgroud)

特别设置spider2spider2_settings.py:

from settings import *

LOG_FILE = 'spider2.log' …
Run Code Online (Sandbox Code Playgroud)

python scrapy

20
推荐指数
1
解决办法
4341
查看次数

标签 统计

python ×1

scrapy ×1