摘要: Spider Studio (采集工作站) 产品页面:http://www.gdtsearch.com/products.spiderstudio.htmQQ群:45995410 - 有人驻场解答技术问题.相关技术文章:http://www.cnblogs.com/iamzyf/category/498344.html 阅读全文
posted @ 2013-11-19 16:20 Ivan Zou 阅读(1079) 评论(2) 推荐(0) 编辑
摘要: 作为程序员,真的很快乐。不用太多happy活动,闲下来写一些自己感兴趣的代码,就足以自娱自乐了。WEBUS就是这样的代码,自从两年前开始研究搜索引擎技术,它就开始伴我度过无数个闲暇时光,而今已经开发到2.0版本了。最近闲逛到好友zhuweisky的博客,看到他早期的一篇文章,说到每个优秀的程序员应该积累一套自己的类库,使我颇受鼓舞。回想我们共事时的点点滴滴已经感慨万千,没有想到现在他的文字依旧能够给我如此触动,让我决定继续我的代码,分享我的快乐。WEBUS2.0 Search Engine SDK 简介用.Net开发搜索引擎系统,我们可以选择Lucene.Net,不过我不习惯里面的Coding 阅读全文
posted @ 2008-01-02 16:51 Ivan Zou 阅读(2898) 评论(5) 推荐(1) 编辑
摘要: 多线程蜘蛛程序是一个很有用的组件, 我在自己开发的Spider Studio中也提供了一个. 在设计上我尽量遵循使用简单的原则, 大量使用dynamic对象的特性, 使得代码非常精简灵活, 通过17行就能实现一个功能比较齐全的蜘蛛程序. 现在和大家分享一下:public void Run(){ dynamic link = new ExpandoObject(); link.Url = "http://news.163.com"; Spider.AddLink(link); Spider.Downloaded += new DownloadedEventHandler(.. 阅读全文
posted @ 2014-03-03 12:51 Ivan Zou 阅读(2300) 评论(4) 推荐(2) 编辑
摘要: 最近研究一个如何在网页定位验证码并截图的问题时, 用SS写了一段C#小脚本可以轻松获取页面任意元素的布局信息 (top, left, width, height). 10行功能代码, 觉得有点用, 现分享给大家:public dynamic GetRect(JQueryContext node){ node.Attr("pos_top", "0"); node.Attr("pos_left", "0"); Default.RunScript(string.Format("var pos = $(' 阅读全文
posted @ 2014-02-25 14:39 Ivan Zou 阅读(2184) 评论(0) 推荐(0) 编辑
摘要: 这是年后的第一个新版本, 包含如下:1. 先前去掉的浏览器设置功能又回来了!说来惭愧, 去掉了这两个功能之后发现浏览经常会被JS错误打断, 很不方便, 于是乎又把它们给找回来了. :)2. 为JQueryContext添加页面布局相关的方法* Point Position(); //获取元素的top, left - 请注意, Point.X 对应 left, Point.Y 对应 top* Size Size(); //获取元素的width, height* Rectangle Rect(); //获取元素的top, left, width 和 height 阅读全文
posted @ 2014-02-25 12:32 Ivan Zou 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 要想在NodeJS中调用SS生成的DLL, 需要借助EdgeJS.EdgeJS:http://tjanczuk.github.io/edge/如果你还不知道如何在SS中生成DLL, 请查看:Spider Studio 新版本 (x-mas) - 可以引入第三方程序集, 可以将脚本生成为DLL下面以曾经写过的XML/JSON互转的脚本为例 (C#中另辟蹊径解决JSON / XML互转的问题)说明如何在NodeJS中应用SS DLL:1. 安装edgejsnpm install edge2. 为www.utilities_online.info.XmlJsonConverter.dll编写一个ja 阅读全文
posted @ 2014-02-25 12:18 Ivan Zou 阅读(1613) 评论(0) 推荐(0) 编辑
摘要: 今天在园子里看到一篇文章:借助Nodejs在服务端使用jQuery采集17173游戏排行信息感觉用SS来实现相同功能更加简洁, 于是写了一下, 发现25行代码就搞定了 (包括自动翻页), 于是跟大家分享分享.脚本:public void Run() { Default.Navigate("http://top.17173.com/index-0-0-0-0-0-0-0.html"); Default.Ready(); while(Default.Available) { var list = Default.SelectNodes("ul.ph-bd-li... 阅读全文
posted @ 2014-02-10 20:32 Ivan Zou 阅读(1455) 评论(2) 推荐(0) 编辑
摘要: 各位哥哥姐姐弟弟妹妹小伙伴们春节好! 2014年对于我们程序员很重要, 因为今年是 "码" 年! SS在此重要之年到来之际热力推出两大重要功能恭贺新春:1. 浏览器视图以前SS启动后的第一眼看起来像一个开发工具, 现在SS启动后第一眼看起来是一个浏览器. 我们将工作区默认折叠起来了! :)这虽然是个极其简单的改动, 却代表着SS的新方向: 由开发工具发展为服务平台的决心! 请大家拭目以待~~~2. 脚本库脚本库是文档库的姊妹功能, 同样是对博客园内容的集成, 但是更具创新性. 它将博客园中与SS相关的所有示范代码都抽取出来重新组合呈现, 为我们带来了一种全新的便捷体验. 因 阅读全文
posted @ 2014-02-06 21:29 Ivan Zou 阅读(804) 评论(0) 推荐(0) 编辑
摘要: 做数据抓取和分析的各位亲们, 有没有遇到下面的难题呢?- 如何从各式各样的网页中提取正文!?虽然可以用SS为各种网站写脚本做解析, 但是互联网各类网站何止千万种, 纵使累死我们也是做不完的. 这里我给大家热情推荐使用Readability来彻底解决这个难题 (呵呵, 不是做广告, 真心热爱这个好东东)Raedability网站(www.readability.com)最引以为傲的就是其强大的解析引擎, 号称世界上最强大的文本解析神器. Safari中的"阅读器"功能就是用它来实现的! 他们还提供了API可以调用解析器的功能, 而我做了一个c#的代理类来方便大家使用.开始之前 阅读全文
posted @ 2014-01-22 23:06 Ivan Zou 阅读(3629) 评论(3) 推荐(1) 编辑
摘要: 最近一个项目中需要用到过往的天气数据, 我找到了天气后报这个网站 (www.tianqihoubao.com), 并在SS中完成了相关采集, 和大家分享一下.首先分析这个网站提供了两种信息:1. 省市关系2. 天气记录对应的我们创建数据结构:[Serializable]public class Province{ public string ProvinceName; public string ProvinceUrl;}[Serializable]public class City{ public Province Province; public string Ci... 阅读全文
posted @ 2014-01-22 11:28 Ivan Zou 阅读(5239) 评论(4) 推荐(2) 编辑
摘要: 其实问题很简单: 我的产品页面在http://www.gdtsearch.com/products.spiderstudio.docapi.htm, 这是一个静态页面; 而我所有的技术博客都在博客园中. 为了让访问者能够直接在产品页面中看到我最新的技术博客, 我将博客页面用IFrame嵌入到了产品页面中:这效果简直是,,, 矮矬穷, 如何叫人能够忍受? 于是乎一个改造工程开始了, 基本思路简单清晰:1. 用SS编写采集脚本, 并编译成DLL2. 用NodeJS编写一个WebApi, 其中调用上面的DLL来获取数据, 然后提供JSONP的结果集3. 在产品页面中用jquery.Ajax来异步加载 阅读全文
posted @ 2014-01-12 13:58 Ivan Zou 阅读(1787) 评论(7) 推荐(1) 编辑
摘要: SS对部分网页中引用的jquery.js有冲突, 会造成网页部分JS效果无法正常执行. 本次版本对其进行了修正, 优化了浏览器的脚本引用机制, 修正了这个BUG. 阅读全文
posted @ 2014-01-09 22:39 Ivan Zou 阅读(478) 评论(0) 推荐(0) 编辑