SpiderBot

一个简单的机器爬虫

SpiderBot 安装

将下列文字添加到你程序中的Gemfile里

gem 'spider_bot'

并执行:

$ bundle

或者直接通过命令安装:

$ gem install spider_bot

SpiderBot 文件

文件格式

1.单站单页爬取, 返回html文本

SpiderBot.crawl("http://example.com", #{origin_options})

2.单站多页爬取

SpiderBot.crawl("#{url}", data: Proce.new{ |data| data }, since: Proce.new{ |data| data }) do

  paginate do
    option :type, :json
    option :path, '#{path}'

    # 翻页页码设置
    option :start, 0
    option :add, 10
    option :expire, 100 #如果设置为-1,将默认进行无限次爬取
    option :sleep, 6

    # 翻页后获取信息设置
    option :data, Proc.new{ |data| data }
    option :since, Proc.new{ |since| since }

    option query, {page: "%{page}", since_id: %{since}}
  end

  crawl_data do |data|
    # 解析爬取的数据...
  end
end

3.多站,多页内容爬取, 可以配合Rails或者padrino进行任务爬去

class Mybot < SpiderBot::Base

  #通过 "spider start” 或者 “spider crawl" 自动执行的方法

  auto do
    origin "#{url}", data: Proc.new{ |data| data }, since: Proce.new{ |since| since }
    execute do

      paginate do
        option :type, :json
        option :path, '#{path}'

        # 翻页页码设置
        option :start, 0
        option :add, 10
        option :expire, 100
        option :sleep, 6

        # 翻页后获取信息设置
        option :data, Proc.new{ |data| data }
        option :since, Proc.new{ |since| since }

       option query, { page: "%{page}", since_id: "%{since}" }
      end

      crawl_data do |data|
        # 解析爬取的数据...
      end
    end
  end
end

初始页面参数设置 origin_options

  • path
  • type
  • headers
  • query
  • data 获取初始页面数据
  • since 获取初始页码数据最后一条参数,用户翻页

翻页参数设置

1.翻页后文本设置

  • paginate_type 翻页后类型[:html, :json, :xml]
  • paginate_path 翻页后的Path
  • paginate_query 翻页后的参数设置 "%{page", since: "%since"}

2.翻页设置

  • paginate_start #翻页起始页, 默认为0
  • paginate_add #翻页增加数, 默认为 1
  • paginate_expire #翻页总结数, 默认为30
  • paginate_sleep #翻页休息数, 默认为 0

3.翻页信息获取

  • paginate_data 获取翻页后的数据, 不填写,默认为origin data
  • paginate_since 获取翻页后最后数据, 不填写, 默认为 origin_since

SpiderBot 命令

  • spider url #直接通过命令爬取, 返回html文本

    • -q query, 设置Query
    • -d data, 爬取数据
    • -o out,输出到文件
  • spider crawl #运行bot文件

    • -b bot, 运行单一bot文件
    • -d dir, 运行指定目录里的bot文件
    • -p expire_page, 总翻页数(用以替代 option :export)
  • spider start #运行爬取服务

    • -d daemon, 后台运行
    • -t time, #设置爬取时间间隔, 默认为10
    • -r random #将爬取时间间隔, 设置为时间下一个随机数, 默认为10的随机数
    • -e env #设置Sipder运行环境, 如果配合Rails或者Padrino, 获取指定运行环境
    • -p expire_page, 总翻页数(用以替代 option :export)
  • spider stop #停止爬取服务