Crawlab使用教程(Python)

简介

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

通用 Python 爬虫脚本

通用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”等工具连接数据库,查看数据集

Scrapy 爬虫

  1. 修改配置文件

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

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

    • 上传步骤同上,只需要在创建爬虫修改爬虫时开启是否为 Scrapy,如图
    • ⚠️注意:在开启这个选项前,请保证您的爬虫项目为一个 Scrapy 爬虫,最好的检测方式,就是检查您爬虫项目的根目录下是否有 scrapy.cfg 文件。如果您的爬虫项目根目录没有 scrapy.cfg 文件,请尝试用 CLI 工具 上传您的 Scrapy 爬虫
  4. 设置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 的字段;您还可以通过点击到 Item 或 字段 来修改名称。
      • 点击 “保存” 按钮操作成功后,您将看到所修改的 Item 和字段已经在 items.py 中生效了。
    • Pipelines

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

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

    • 查看结果集步骤同上