Fetch the repository succeeded.
This action will force synchronization from 立冬/spiderkit, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
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
git clone https://git.oschina.net/wangsihong/spiderkit.git
进入 spiderkit/script 目录
cd spiderkit/script
./compile.sh
启动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
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客户端代码在 spiderkit/src/java/src/skit-client 下
java客户端maven引入 :
<dependency>
<groupId>com.gome</groupId>
<artifactId>skit-client</artifactId>
<version>0.0.1</version>
</dependency>
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 是一个插件式的爬虫框架,插件通过继承spider-plugin中的类,完成一个爬虫的链接提取和数据提取存储的功能,通过框架的调度启动或停止爬虫任务。
相关源码目录: spiderkit/src/java/src/spider-schedule --- spiderkit-schedule
spiderkit/src/java/src/spider-plugin --- spider-plugin
spider-plugin maven引入 :
<dependency>
<groupId>com.gome</groupId>
<artifactId>spider-plugin</artifactId>
<version>0.0.1</version>
</dependency>
启动:
./app-start.sh
控制界面:
http://your_ip:8089/spiderkit/
flowcrawl是spiderkit schedule内置的一个爬虫插件,通过spiderkit schedule的web页面,可以配置按步骤的爬取某网站的垂直爬虫,保存渲染后的页面代码以及页面间的关系。
通过配制提取xpath信息或者编写javascript脚本, 可以提取出想要的信息。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。