转载

Git@OSC 项目推荐 —— webkit 解析集群 spiderkit

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引入 :  <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 爬虫框架

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 爬虫插件

flowcrawl是spiderkit schedule内置的一个爬虫插件,通过spiderkit schedule的web页面,可以配置按步骤的爬取某网站的垂直爬虫,保存渲染后的页面代码以及页面间的关系。 通过配制提取xpath信息或者编写javascript脚本, 可以提取出想要的信息。
正文到此结束
Loading...