爬虫和浏览器的实现 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
嗯 是问题也是一个挑战。 一个最好的爬虫应该在协议的支持上接近浏览器 而在性能上又胜百倍。
是问题也是机会
发表评论