代码拉取完成,页面将自动刷新
同步操作将从 立冬/spiderkit 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
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脚本, 可以提取出想要的信息。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。