我發現了一個項目,jaxer,它在服務器端嵌入了Firefox的JavaScript引擎,因此它可以很好地解析HTML服務器端。但是,這個項目似乎已經死了。這對於抓取網頁來解析HTML &提取數據非常有用。是否有服務器端的dom引擎適合爬行?
是否有一些新技術可用於提取信息?
我發現了一個項目,jaxer,它在服務器端嵌入了Firefox的JavaScript引擎,因此它可以很好地解析HTML服務器端。但是,這個項目似乎已經死了。這對於抓取網頁來解析HTML &提取數據非常有用。是否有服務器端的dom引擎適合爬行?
是否有一些新技術可用於提取信息?
我過去所做的是使用Selenium RC來控制代碼的網絡瀏覽器(通常是Firefox),以使用真實的網絡瀏覽器加載和解析網站。
這很酷的事情是,你主要是用你熟悉的語言編寫代碼,無論是Perl,Ruby還是C#。但要充分利用Selenium的力量,你仍然需要知道和寫javascript。
另一個有趣的方法是使用node.js結合jsdom和node-htmlparser加載頁面並解析JavaScript。目前它還沒有開箱即用,但Dav Glass(來自雅虎)已經有success running YUI in node.js使用該組合的修改版本。
這很有趣,如果你認爲沒有什麼東西足夠好,你想實現自己的。如果是這樣,它將成爲一個優秀的開源項目。
我已經在python + pywebkitgtk + javascript中編寫了一個支持js的爬行器,取得了一些成功。它比傳統的抓取工具慢得多,但它可以完成工作,並可以做很酷的工作,比如製作屏幕截圖和拾取被js注入「遮蔽」的內容。
有與這裏的一些示例代碼像樣的文章:
http://blog.motane.lu/2009/06/18/pywebkitgtk-execute-javascript-from-python/
ItsNat是不是JavaScript是基於Java類似Jaxer的主要區別。
注意:我將此作爲單獨的答案添加,因爲它與我以前的答案完全不同。 – slebetman 2010-10-08 17:21:20