我想抓个网站,http:www.espn.com,抓取espn足球部分数据,想用nekohtml来解析,但是小弟对网页定位不是很了解,比如我想抓取url为http://soccernet.espn.go.com/?cc=4716,网页中排名数据,
Portuguese Liga 
May 18, 2009 GP PT 
FC Porto 29 69 
Sporting Lisbon 29 63 
Benfica 29 56 
CD Nacional de Madeira 29 52 
Braga 29 49 
Leixoes 29 42 
Académica de Coimbra 29 39 
Maritimo 29 37 
Guimaraes 29 35 
Estrela Amadora 29 34 
Paços de Ferreira 29 31 
Naval 1º Maio 29 28 
Rio Ave 29 27 
Vitoria Setubal 29 25 
Belenenses 29 24 
Trofense 29 23 
就是这部分,有人能给我个完整的例子吗?我现在不清楚怎么能够定位到这部分,然后取出内容

解决方案 »

  1.   

    我来回答!比如这个帖子,我想获取kokobox的回复,通过查看源代码,发现box的回复是在id为reply57194353_body的td标签中,经过研究nekohtml的例子,package test;import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import org.cyberneko.html.parsers.DOMParser;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.xml.sax.InputSource;public class Test {
    public static void main(String[] argv) throws Exception { URL url = new URL(
    "http://topic.csdn.net/u/20090521/11/db336c07-2dbc-4732-8229-cb99fcb9d10e.html");
    HttpURLConnection connection = (java.net.HttpURLConnection)url.openConnection();
    connection.connect();
    InputStream stream = connection.getInputStream();
    DOMParser parser = new DOMParser();
    parser.setProperty("http://cyberneko.org/html/properties/default-encoding","utf-8");
    parser.parse(new InputSource(stream));
    Document doc = parser.getDocument();
    Node kokobox = doc.getElementById("reply57194353_body");
    print(kokobox, "");
    }  public static void print(Node node, String indent) {
    System.out.println(node.getTextContent());
    } }
      

  2.   

    恩,这个例子是根据td的id来获取td的内容,但是如果td没有标明id,那就不行了,这个之前我也试过,我想是这样,解析html实际上可以当成解析xml来处理的,但是我怎么用这个工具将html按照xml节点方式来解析呢,如果可以这样做,那就很简单,看网上说是都可以,但是没有找到窍门,继续期待更好的答案,不过还是谢谢楼上2位的回复
      

  3.   

    应该是可以先将html页面根据url地址转化为xml文件,这样再对xml文件进行解析,谁能给提供一下转化的例子?