前一段时间写了一段抓取网页的程序,感到这个很简单,最近要搜寻网上信息,于是也打算写一个程序来做这件事,不过这次涉及到多个网站,格式很不规则,写来写去,貌似变成一个垂直爬虫了,略有心得,凑一篇博客吧。
作为一个java程序员,我选择最简单的方式──用ruby来做,使用的技术储备包括:
1. 任务编写工具,用rake就足够了,很方便
2. html解析器:用Hpricot,它支持各种定位方式,据说底层用C,因此性能不错
3. 另外还要一些支持库:例如地址处理使用uri、网页抓取使用net/http,编码转换使用iconv等等。
既然是爬虫,那么通过网页上的链接进行网页抓取是基本功能,显然,这是 ...
表现为能够mount,但是不能umount
bash 代码
$ umount /media/other
umount: /media/other mount disagrees with the fstab
检查fstab文件:
文件内容
# /dev/sda7
UUID=c2181b73-0e36-4fba-8f53-9538ab09703 ...
今天解决一个bug时花了很长时间分析定位。
起因是我们自己写了一个tab函数,用来支持网页上分tab显示内容,可以局部更新,支持缓存和刷新。
但是后来发现,refresh content的时候采用AJAX方式取数据,而数据中的js脚本并不会执行。一开始不知道为什么会这样,我一直以为只要设置innerHTML就会执行包含的js,单独写了两个页面用prototype的Ajax.updater试验,也是可以执行的,真是搞不懂。
前辈教导我们,搞不定的时候读源码永远是一个好主意。于是看prototype──哦,原来如此:
javascript 代码
upd ...
等到皮匠网推广的时候一定要写上推荐使用firefox,IE实在有太多的怪问题了,还缺少一些重要的特性。
今天就遇到一个:
常常能看到一些网站,某些内容是固定显示在浏览器的某个位置,非常适合显示辅助用户的提示信息。今天研究了一下这个问题,发现其实很容易,CSS的 position设置为fixed就可以,困难的在于──IE 6不支持这个特性,结果非要绕个弯子实现,不但开发麻烦,而且最后的效果也远不如firefox之类的专业浏览器(在这个问题上,IE 6只能算是业余水平,好在IE 7改正了这个错误)。
最后搞了一个全兼容的方案,虽然不太好看,好歹能用。
我把例子放在附件中,下 ...
1.gmail似乎是为了解决垃圾邮件问题,有时候发信会被退回,提示信息如下
代码
Technical details of permanent failure:
PERM_FAILURE: Message rejected for Sector 5 policy reasons
不懂这个“Sector 5 policy”是什么地方的东西,也不知道怎么解决。 ...
今天搭建网站基本系统,时间紧迫,只好先在CentOS上搭建了。
以前没有怎么用过yum,只知道它是学习了apt的做法,把rpm纳入repository的管理了。
今天发现它的设计的不好:
bash 代码
...
glibc-kernheaders-0-2.4-8 100% |=========================| 25 kB 00:00
la ...
准备做一点web方面的基础性工作,为以后的开发提供平台支持。
在wiki上写了几句话,抄过来:
引用
在rails成功在哪里中,我提到rails充分绑定和利用了一个js库──prototype,以便于我们打造覆盖浏览器和服务端的展现组件。
但是,仅仅使用prototype还不够,对于很多应用,需要大量的widget支持。这要求js库支持这些widget,而且还要易与 server端技术集成,目前比较好的js库有两个──dojo和extjs。前者的优点是一套autoload的widget系统 ...
今天用了一下google trend,感觉还不错。
其实原理很简单,就是统计计算各种关键字的搜索频率变化趋势,不过因为是来源于google这个全世界第一的home page,所以信息量大,因此也具有统计价值。
举个例子,我们可以研究一下ruby和python。
ruby python
2004年趋势:
2005年趋势:
2006年趋势:
2007年趋势:
可以看出,在2006年以前ruby还赶不上python的发展,顶多可以说二者的使用率基本上的相互交错的(这可能与一些基于 ...
安装rails,一般都会安装rubygems,但是如果用ubuntu的apt安装gem,安装后的gem会有异常:
bash 代码
$ sudo gem update --system
...
... (Gem::GemNotFoundException) Could not find rubygems-update (> 0) in the rep ...
今天看extjs自己的build系统,突然产生一个想法──根据页面需要,我们也许可以定制需要包含的extjs库的内容。
1.每个页面在包含js时可以设置自己的组件,例如:
rhtml 代码
<%= ext_get 'Core-Utilities','Grid-Core','Core-State Management',
'Data-Core','Data-JSON Support' %>
2.在ext-get中,我们组织一个url ...
今天尝试了一下组件,其实很简单,就是在rhtml中这么写:
ruby 代码
<%= render_component(:action => 'basic_info') %>
然后完成对应的action(这个例子中叫做basic_info),rails就会把action输出的内容render后装入rhtml中。
当然,我们不能忘记layout这个东东,所以要在action上写一句:
ruby 代码
render :layout => ...
- 浏览: 20228 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最新评论
-
prototype确实实用
其实感觉还是有问题的,极端点,这个Ajax.Updater是同步的,并且希望up ...
-- by afcn0 -
prototype确实实用
也许是为了解决浏览器的某些bug吧,要不然他大可不必延迟执行。或许,是为了起一个 ...
-- by 笨笨狗 -
prototype确实实用
不过其setTimeout(function() {html.evalScrip ...
-- by afcn0 -
prototype确实实用
Prototype是我的js学习榜样,嘿嘿这个自动执行js是可以通过evalSc ...
-- by 笨笨狗 -
prototype确实实用
fsword 写道今天解决一个bug时花了很长时间分析定位。<br /> ...
-- by ddh9504






评论排行榜