我找到了一个项目,jaxer,它在服务器端嵌入了 Firefox 的 JavaScript 引擎,因此它可以很好地解析 HTML 服务器端。但是,这个项目似乎已经死了。它对于抓取网页以解析 HTML 和提取数据非常有帮助。
是否有一些新技术对提取信息有用?
我找到了一个项目,jaxer,它在服务器端嵌入了 Firefox 的 JavaScript 引擎,因此它可以很好地解析 HTML 服务器端。但是,这个项目似乎已经死了。它对于抓取网页以解析 HTML 和提取数据非常有帮助。
是否有一些新技术对提取信息有用?
另一种有趣的方法是结合使用node.js和jsdom和node-htmlparser来加载页面并解析其中的 javascript。目前它还没有真正开箱即用,但是 Dav Glass(来自 Yahoo)已经成功地使用这个组合的修改版本在 node.js 中运行 YUI 。
如果您认为没有任何东西足够好并且您想实现自己的,这很有趣。如果是这样,它将成为一个出色的开源项目。
我过去所做的是使用Selenium RC来控制 Web 浏览器(通常是 firefox),从代码到使用真正的 Web 浏览器加载和解析网站。
很酷的一点是,您主要使用自己熟悉的语言进行编码,无论是 Perl、Ruby 还是 C#。但是要充分利用Selenium的强大功能,您仍然需要了解和编写 javascript。
我在 python + pywebkitgtk + javascript 中编写了一个支持 js 的爬虫,并取得了一些成功。它比传统的爬虫慢得多,但它可以完成工作,并且可以做一些很酷的事情,比如制作屏幕截图和拾取被 js 注入“模糊”的内容。
这里有一篇不错的文章,其中包含一些示例代码:
http://blog.motane.lu/2009/06/18/pywebkitgtk-execute-javascript-from-python/
ItsNat类似于 Jaxer,主要区别是基于 Java,而不是 JavaScript。