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

Java 使用htmlparser解析网站时无法获取所有匹配的节点,java,html-parser,Java,Html Parser,我正在使用HTMLPasser解析一个网站,但我遇到了一个非常奇怪的问题。我正在尝试获取网页上的所有节点,我的代码如下: 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 = pa

我正在使用HTMLPasser解析一个网站,但我遇到了一个非常奇怪的问题。我正在尝试获取网页上的所有
  • 节点,我的代码如下:

    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");
    }
    
    stringurl=”http://s.1688.com/selloffer/offer_search.htm?keywords=%BD%A8%B2%C4&n=y&categoryId=";
    解析器=新的解析器(url);
    解析器.setEncoding(“gb2312”);
    NodeList list=parser.extractAllNodesThatMatch(新标记名过滤器(“li”);
    //NodeList list=parser.parse(新的CssSelectorNodeFilter(“li[class=\”sm offerShopwindow\“]”);
    System.out.print(list.size()+“\n”);
    对于(int i=0;i

    但是列表大小的输出总是20。它似乎并没有遍历该页面上的所有节点。为什么?谢谢你的建议

    即使是最顶尖的浏览器也不总是同意如何解析那些假装是HTML的奇怪东西,而且,自2006年以来,网络发展得非常迅速。因此,如果这样一个旧的软件无法处理现代HTML,我也不会感到惊讶。

    这是哪个解析器?我使用的是htmlparser。@HaraldWhich package?开源的东西?家酿什么?这是一个开源的罐子。它的主页是,但事实是,我尝试了一些其他网页,它工作得很好,所以我怀疑有任何机会的具体网页课程的问题?