# spiderkit
**Repository Path**: nbsnail/spiderkit
## Basic Information
- **Project Name**: spiderkit
- **Description**: 基于phantomjs修改的webkit解析集群,实现远程调用,提供java/c++/python接口。
- **Primary Language**: Unknown
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 7
- **Created**: 2015-07-28
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
spiderkit
=======================
编译步骤:
---------------------------
### 安装依赖
CentOS:
sudo yum -y install gcc gcc-c++ make flex bison gperf ruby \
openssl-devel freetype-devel fontconfig-devel libicu-devel sqlite-devel \
libpng-devel libjpeg-devel
sudo yum install git
sudo yum install automake autoconf autogen libtool
自行下载安装maven
Ubuntu:
sudo apt-get install build-essential g++ flex bison gperf ruby perl \
libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev \
libpng-dev libjpeg-dev
sudo apt-get install git
sudo apt-get install automake autoconf autogen libtool
sudo apt-get install maven
### 下载spiderkit
git clone https://git.oschina.net/wangsihong/spiderkit.git
### 编译
进入 spiderkit/script 目录
cd spiderkit/script
./compile.sh
### 启动spiderkit
启动spiderkit集群首先要启动一个zookeeper集群
编辑spiderkit.conf, script目录下有一个模板,拷到项目根目录
配置文件:
"StaticCoreCount" : 启动的静态内核数(静态内核指关闭js解析的内核)
"DynamicCoreCount" : 启动的动态内核数
"GroupName" : 分组名称(客户端的请求要求制定一个分组,分组可以用来表示网络环境,机房或者用来分配请求等)
"IsDebug" : 是否以debug启动,log打印debug信息
"ZookeeperHost" : zookeeper 集群host
"ExitWorkCount" : 表示内核加载渲染多少页面之后申请重启.解决qwebkit内存泄露问题
"DefaultSocketPort": 服务端口,默认为 21225
"enableProxy" : 是否使用代理
"proxyType" : 代理的类型
"proxyAuthUser" : 用户名
"proxyAuthPass" : 密码
"proxyHost" : 代理IP
"proxyPort" : 代理端口
"enableProxyPool" : false/true, 集群可通过zookeeper加载代理池代理
"enableProxyPath" : zookeeper中保存代理信息的代理池所在节点
执行启动脚本:
./spiderkit-start.sh
停止脚本:
./spiderkit-stop.sh
### python 客户端
CentOS:
sudo yum install python-devel
Ubuntu:
sudo apt-get install python-dev
安装 easy_install:
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
安装 pyzmq
sudo easy_install pyzmq
安装 protobuf python
进入 src/thrid/
解压并安装 python-gflags-2.0.tar.gz 和 google-apputils-0.4.0.tar.gz
然后进入 script/source/protobuf/python/ 安装 protobuf python
sudo python setup.py install
安装 zookeeper python
下载zookeeper python 包
下载地址 https://pypi.python.org/packages/source/z/zkpython/zkpython-0.4.2.tar.gz
安装 spiderkit python
进入 src/python-client
sudo python setup.py install
python客户端渲染百度的例子:
gconfig = caller.GlobalConfig()
gconfig.init("10.58.222.103:2181")
wk = webkit.WebKit("test")
page = wk.getWebPage("http://www.baidu.com/", 30000, 40000)
if page is None: # get page failed
wk.release()
_exit(0)
print page.getTitle()
page.destroy()
wk.release()
### java 客户端
java客户端代码在 spiderkit/src/java/src/skit-client 下
java客户端maven引入 :
com.gome
skit-client
0.0.1
java 客户端渲染百度的例子:
String zkhost = "10.58.222.103:2181";
GlobalConfig config = GlobalConfig.getInstance();
config.connect(zkhost);
WebKit webkit = new WebKit("test");
WebPage page = webkit.get("http://www.baidu.com/");
if (page == null) # get page failed
wk.release()
return
System.out.println(page.getTitle());
page.destory();
webkit.release();
### spiderkit-schedule 爬虫框架
spiderkit schedule 是一个插件式的爬虫框架,插件通过继承spider-plugin中的类,完成一个爬虫的链接提取和数据提取存储的功能,通过框架的调度启动或停止爬虫任务。
相关源码目录: spiderkit/src/java/src/spider-schedule --- spiderkit-schedule
spiderkit/src/java/src/spider-plugin --- spider-plugin
spider-plugin maven引入 :
com.gome
spider-plugin
0.0.1
启动:
./app-start.sh
控制界面:
http://your_ip:8089/spiderkit/
### flowcrawl 爬虫插件
flowcrawl是spiderkit schedule内置的一个爬虫插件,通过spiderkit schedule的web页面,可以配置按步骤的爬取某网站的垂直爬虫,保存渲染后的页面代码以及页面间的关系。
通过配制提取xpath信息或者编写javascript脚本, 可以提取出想要的信息。