我已经从不同的人那里读到了许多关于库来抓取
HTML的不同问题.我决定使用htmlcxx,因为它看起来很简单,它在Ubuntu存储库中.无论如何,在玩htmlcxx时,我试图实现一个简单的任务并在标题标签之间抓取文本.使用迭代器,it-> text()返回标记本身,它 – > textClosing()返回标记的结束.我的问题是,我如何获得标签之间的数据?我的意思是,必须有一种方法,为什么要使一个库来抓取HTML而没有这个功能?如果有人能指出我正确的方向,我会很感激.
你可以看看我到目前为止用svn做了什么:
svn co svn://yunices.dyndns.org/repository/nich/trunk.
这是有问题的特定片段:
void node::get_headings() {
tree<:html::node>::iterator it = dom.begin();
tree<:html::node>::iterator end = dom.end();
for (; it != end; ++it) {
static const boost::regex expression("[h|H][1-6]");
if(boost::regex_search(it->tagName(), expression)) {
it->parseAttributes();
std::cout << it->text() << "<=>" << it->closingText() << std::endl;
std::map<:string std::string> pairs = it->attributes();
for ( std::map<:string std::string>::const_iterator iter = pairs.begin();
iter != pairs.end(); ++iter ) {
std::cout << iter->first << ":" << iter->second << "\n";
}
}
}
}