Project

spider_bot

0.0
No release in over 3 years
Low commit activity in last 3 years
Spider bot framework
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.7
~> 10.0

Runtime

 Project Readme

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: "%{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 #停止爬取服务