爬虫和浏览器的实现 onebird | 19 十二月, 2006 22:25

由于众多web2.0网站的出现。

越来越多网站将逻辑用javasciprt 或者 falsh放到客户端。(js更流行)

 Tamarin


web技术的发展将浏览器的门槛 大大提高了。从前links w3m 等已经几乎不能使用了。今日发现Elinks文本浏览器据说能支持javascript昨天上水木试验了一下。还是不能用。 而且中文支持不大好。
 

同时对搜索引擎爬虫的性能 和 实现难度也有个很大的提高。 

浏览器的核心工作。

1 下载html

2  Cookie 和缓存管理

3 html解析  

          3.1 解析成dom 

          3.2 解析javascript

          3.3 根据html的含义 配合 css等解析出布局

          3.4 根据上一步在屏幕上绘图

 4 接受用户鼠标 键盘做出处理。

 以前的搜索引擎 一般只实现浏览器的。 1 和 3.1的一小部分(一般不解析成dom ,只是把标签和一些不当索引的标签内文字去掉)

但是目前越来越多的网页把页面生成,以及排版让javascript和css来控制。

那么爬虫要理解抓回来的对象就要做出更多的努力。(有人说用hook浏览器来处理的方式来爬虫啊,可是这样性能的要求和对爬虫的控制就完全失去了)

据我了解 搜狗的爬虫对js 还基本不支持。百度的爬虫能够处理基本的js。

由于Molliz的存在,许多firefox的资源可以利用。比如spidermonkey。但是要完全实现好,还有很大的工作量。

但是 搜遍互联网 只发现有一个人在用Rhino做这样的实现。http://fxw.shiweitao.cn/?p=9

 

嗯 是问题也是一个挑战。 一个最好的爬虫应该在协议的支持上接近浏览器 而在性能上又胜百倍。

 是问题也是机会


张一鸣,男,福建龙岩,南开校友。 从事搜索引擎研发工作 兴趣:计算机,网络,搜索,即时通信和其它有价值的网络应用 爱好:旅游,美食

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。