我正在编写一个实用程序,它应该击中动态页面的URL,检索内容,在各种嵌套的div标记中搜索特定的div标记并抓取内容。
主要,我正在寻找一些Java代码/库。JavaScript或一些基于JavaScript的库也适合我。
我的候选名单如下-> JSoup, Jerry, JTidy(最后更新于2009-12-01)。哪一个性能最好?
编辑:改写问题。新增入围库
如果您想抓取页面并解析它,我建议使用node with jsdom。
install nodeJS(假设linux):
sudo apt-get install git
cd ~
git clone git://github.com/joyent/node
cd node
git checkout v0.6
mkdir ~/.local # If it doesn't already exist
./configure --prefix=~/.local
make
make install
还有一个windows安装程序:http://nodejs.org/dist/v0.6.6/node-v0.6.6.msi
安装jsdom:$ npm install jsdom
运行这个修改了url和相关选择器的脚本:
var jsdom = require('jsdom');
jsdom.env({
html: 'url',
done: function(errors, window) {
console.log(window.document.getElementById('foo').textContent;
}
});
如果你喜欢jQuery的简单语法,你可以试试Jerry:
Jerry is a jQuery in Java. Jerry is a fast and concise Java Library that simplifies HTML document parsing, traversing and manipulating.
Jerry is designed to change the way that you parse HTML content.
语法似乎很简单。它应该在最多3行代码中解决您的问题。
http://jtidy.sourceforge.net/
JTidy非常擅长解析DOM。
如果你追求的是一个选择器引擎,那么Sizzle是你最好的选择。这是jQuery使用的引擎
给出每个div的唯一id,并使用document.getElementById(id)