Crawlab v0.5.x 使用教程 (Python)

  • Crawlab 是基于 Golang 的分布式爬虫管理平台,支持多种编程语言以及多种爬虫框架。
  • 本教程是针对 Python 用户来写的一份 Crawlab 简单上手指南!
  • 另外附上 宝塔下安装 Crawlab 教程,有需要的可以看一看!
  • 如果还有什么不懂得也可以参考 Crawlab 官网文档

通用 Python 爬虫脚本 (单文件) 的使用教程

  1. 添加代码

    1
    2
    3
    4
    5
    6
    7
    8
    # 引入保存结果方法
    from crawlab import save_item

    # 这是一个结果,需要为 dict 类型
    result = {'name': 'crawlab'}

    # 调用保存结果方法
    save_item(result)

    将以上代码加入到您爬虫中的结果保存部分。

  2. 添加依赖文件

    • 如果您脚本中用到了 Crawlab 默认没有安装的依赖包,你需要手动新建依赖文件 requirements.txt,如果您不需要另外的依赖,则不用新建 requirements.txt 文件
    • 将您项目运行时必须的且 Crawlab 默认没有安装依包添加到 requirements.txt 中,如:jsonpath==0.82
    • ⚠️注意:依赖包必须指定版本,否则无法安装
    • Crawlab 会自动扫描代码目录,如果存在 requirements.txt,就会自动执行对应的安装程序,将指定的依赖安装到 Crawlab 节点上
    • Crawlab 默认安装的依赖项
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      attrs
      automat
      beautifulsoup4
      bs4
      certifi
      cffi
      chardet
      click
      constantly
      crawlab-sdk
      cryptography
      cssselect
      elasticsearch
      hyperlink
      idna
      incremental
      itemadapter
      itemloaders
      jmespath
      kafka-python
      lxml
      parsel
      pathspec
      prettytable
      protego
      psycopg2-binary
      pyasn1
      pyasn1-modules
      pycparser
      pydispatcher
      pyhamcrest
      pymongo
      pymysql
      pyopenssl
      queuelib
      requests
      scrapy
      scrapy-splash
      service-identity
      six
      soupsieve
      twisted
      urllib3
      w3lib
      zope.interface
  3. 打包为 Zip 文件

    • 在通过 Web 界面上传之前,需要将爬虫项目文件打包成 zip 格式
    • ⚠️注意:如果您在上一步新建了依赖文件 requirements.txt,打包的时候需要将其一起打包
  4. 上传爬虫文件

    • 首先,您需要导航到爬虫列表页,然后点击【添加爬虫】
    • 选择【自定义爬虫】(默认),将出现以下界面
    • 输入相应的参数:【爬虫名称】、【显示名称】、【项目】(如果没有项目可留空)、【执行命令】和【结果】
    • 它们的定义如下:
      • 爬虫名称:爬虫的唯一识别名称,将会在爬虫根目录中创建一个该名称的文件目录,因此建议为没有空格和特殊符号的 小写英文,可以带 下划线
      • 显示名称:爬虫显示在前端的名称,可以为任何字符串 (如:中文等)
      • 项目:爬虫所属的项目,没有所属项目可以留空
      • 执行命令:爬虫将在 shell 中执行的命令,最终被执行的命令将为 执行命令参数 的组合
      • 结果:【结果集】的意思,爬虫抓取结果储存在 MongoDB 数据库里的集合(Collection),类似于 SQL 数据库中的表(Table)
  5. 运行爬虫文件

    • 上传完爬虫文件后,会跳转到爬虫详情页,在这里你可以修改该爬虫文件的一些详细信息,如:项目备注等等
    • 修改完后,点击【保存】,最后点击【运行】,即可运行项目,开始抓取数据
  6. 查看结果集

    • 在爬虫列表页点击运行过的爬虫名称,进入【爬虫详情页】
    • 在【爬虫详情页】点击【创建时间】,进入【任务详情页】
    • 在【任务详情页】查看运行【结果】,同时还可以查看【日志】和【概览】
    • 你也可以使用 Robo 3T 等工具连接数据库,查看数据集
  1. 修改配置文件

    • settings.py 中找到 ITEM_PIPELINESdict 类型的变量),在其中添加如下内容
      1
      2
      3
      ITEM_PIPELINES = {
      'crawlab.pipelines.CrawlabMongoPipeline': 888,
      }
  2. 添加依赖文件

    • 如果您的 Scrapy 爬虫项目中用到了 Crawlab 默认没有安装的依赖包,你需要手动在 Scrapy 项目目录中新建依赖文件 requirements.txt,如果您不需要另外的依赖,则不用新建 requirements.txt 文件
    • 将您项目运行时必须的且 Crawlab 默认没有安装依包添加到 requirements.txt 中,如:jsonpath==0.82
  3. 打包为 Zip 文件

    • 在通过 Web 界面上传之前,需要将爬虫项目文件打包成 zip 格式
    • ⚠️注意:您需要在爬虫项目根目录下打包,意思是您需要进入到项目的第一层,将所有文件和文件夹打包成 zip 文件。
  4. 上传爬虫文件

    • 上传步骤同上,只需要在创建爬虫修改爬虫时开启是否为 Scrapy,如图
    • ⚠️注意:在开启这个选项前,请保证您的爬虫项目为一个 Scrapy 爬虫,最好的检测方式,就是检查您爬虫项目的根目录下是否有 scrapy.cfg 文件。如果您的爬虫项目根目录没有 scrapy.cfg 文件,请尝试用 CLI 工具 上传您的 Scrapy 爬虫
  5. 设置 Scrapy

    • 如果上传成功,您将看到爬虫详情里有 Scrapy 设置 标签,点开标签您能看到如下界面

    • 设置

      • 第一个默认标签是【设置】,这是 Scrapy 爬虫的设置界面,也就是配置 settings.py 的地方。Crawlab 会将您 Scrapy 爬虫项目中的 settings.py 中的变量读取并显示出来。在这里,您可以添加、删除修改任何 settings.py 中的变量。在修改变量时,别忘记确定 变量类型
      • 点击【保存】按钮后,您的设置就保存在 settings.py 里去了,您可以到【文件】标签中检查 settings.py 是否生效。
    • 爬虫

      • 第二个标签是【爬虫】,这是在 spiders 文件夹里定义的爬虫,是继承了 scrapy.Spider 的类。
      • 您可以点击【添加爬虫】来创建一个新的 Scrapy 爬虫,这相当于是执行了 scrapy genspider 的操作。
      • 同时,如果您点击 Scrapy 爬虫列表中的一个爬虫,可以自动跳转到对应的爬虫文件。
    • Items

      • 第三个标签是【Items】,这里是定义爬虫抓取项的地方,会将 items.py 中的继承了 scrapy.Item 的类以及其字段列表读取并展现出来,如下图。
      • 在这里,您可以添加、删除以及修改 Item 的字段。
      • 点击【保存】按钮操作成功后,您将看到所修改的 Item 并且字段已经在 items.py 中生效了。
    • Pipelines

      • 第四个标签是【Pipelines】,在这里您可以看到 Pipeline 的列表,点击之后跳转到 pipelines.py 文件。
  6. 运行爬虫文件

    • 运行爬虫文件步骤同上
  7. 查看结果集

    • 查看结果集步骤同上