在弄一个爬虫框架,类似于 alfred workflow,拖拖拽拽加少量的 script就可以写出一个爬虫〜 - CNode技术社区

在弄一个爬虫框架,类似于 alfred workflow,拖拖拽拽加少量的 script就可以写出一个爬虫〜
发布于 12 年前 作者 ltebean 5363 次浏览 最后一次编辑是 9 年前

前两天突发奇想搞了一个爬虫框架,主要思想借鉴了alfred workflow和ios开发里的storyboard。

每一个爬虫只需要一个配置文件,demo在config.yaml里:从点评的搜索结果页开始爬起,抓取每一家商户的信息

components:
initializer: 
 type: initializer
 segues:
 - to: shopList
 func: 
 |
 offer("http://www.dianping.com/search/category/1/0");
shopList: 
 type: pageProcessor
 segues:
 - to: shopList
 func: 
 |
 var nextPage=$(".NextPage");
 if(!nextPage){
 return;
 } 
 offer("http://www.dianping.com"+nextPage.attr("href"));
 - to: shop
 func: 
 |
 $(".BL").each(function() {
 offer("http://www.dianping.com"+($(this).attr("href")));
 })
shop: 
 type: pageProcessor
 segues:
 - to: mongodb
 func: 
 |
 offer({
 shopName:$(".shop-title").text()
 });
mongodb: 
 type: mongodbAdaptor
 host: 127.0.0.1
 port: 27017
 collection: shop

解释一下这个配置文件: component是一个个功能单元,有处理页面的,有把数据持久化到db的 segue是连接各个component的(to:发送到哪个component,func:把什么数据发过去,通过offer函数) 比如shopList的两个segue,第一个segue是把下一页的链接也发给自己处理,第二个是把商户页的链接交给shop这个component处理〜

附上项目地址 https://github.com/yucong/spiderman

目前主要的核心逻辑已经都实现了,就差把配置文件弄成像storyboard那样的可视化编辑了〜

回到顶部

AltStyle によって変換されたページ (->オリジナル) /