使用htmlparser解析网站时无法获取所有匹配的节点

时间:2013-12-22 07:43:25

标签: java html-parser

我正在使用htmlparser来解析一个网站,但我陷入了一个非常奇怪的问题。我正在尝试在网页上获取所有<li>个节点,我的代码如下:

String url = "http://s.1688.com/selloffer/offer_search.htm?keywords=%BD%A8%B2%C4&n=y&categoryId=";
Parser parser = new Parser(url);
parser.setEncoding("gb2312");

NodeList list = parser.extractAllNodesThatMatch(new TagNameFilter("li"));
// NodeList list = parser.parse(new CssSelectorNodeFilter("li[class=\"sm-offerShopwindow\"]"));
System.out.print(list.size() + "\n");
for (int i = 0; i < list.size(); i++) {
Node li = list.elementAt(i);
System.out.print("text:" + li.getText() + "\n");
}

但是列表大小的输出总是为20.它似乎不会遍历该页面上的所有节点。为什么?感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

即使是顶级的浏览器并不总是同意如何解析所有奇怪的东西,假装是HTML,并且自2006年以来网络非常发达。所以我不会感到惊讶,如果这样一个旧的软件不能应对现代HTML。