简体   繁体   English

使用Jsoup解析HTML内容

[英]Parsing Html content using Jsoup

This is my HTML source 这是我的HTML来源

             <li>
                 <a href="/info/some1>Item 1<br>
                    <span class="deets">111</span>
                 </a>
             </li>

             <li>
                 <a href="/info/some2>Item 2<br>
                    <span class="deets">222</span>
                 </a>
             </li>

             <li>
                 <a href="/info/some3>Item 3<br>
                    <span class="deets">333</span>
                 </a>
             </li>

This is my Java program to get the content & it filters the HTML tags 这是我获取内容的Java程序,它过滤HTML标记

    try {   
        myurl = new URL("http://www.somewebsite.com");  
        HttpURLConnection con= (HttpURLConnection) myurl.openConnection();

        InputStream result = con.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(result));
        StringBuilder sb = new StringBuilder();

        for(String line; (line = reader.readLine()) != null;)
            //append all content & separate using line separator
        sb.append(line).append(System.getProperty("line.separator"));
        String final_result = sb.toString().replaceAll("\\<.*?\\>", "");    

        TextView tv=(TextView) findViewById(R.id.textView1); 
        tv.setText(final_result);


    } 

    catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        tv.setText("not working");
    }
  1. Is there an easier way using Jsoup to parse the HTML content using Java instead of Regex 是否有使用Jsoup而不是使用Java而不是Regex解析HTML内容的简便方法

  2. Is there a way to get only the required contents. 有没有办法只获取所需的内容。 So here I just want the contents "Item 2 - 222" 所以在这里我只需要内容“项目2-222”

      <li> <a href="/info/some2>Item 2<br> <span class="deets">222</span> </a> </li> 

Try this for easy parsing using jsoup: 尝试以下操作,以使用jsoup轻松解析:

// To parse the html page
Document doc = Jsoup.connect("http://www.website.com").get();
Document doc1 = Jsoup.parse("<html><head><title>First parse</title></head>" + "<body> <p>Parsed HTML into a doc.</p></body></html>");

String content = doc.body().text();

// To get specific elements such as links
Element links = doc.select("a[href]");
for(Element e: links){
    System.out.println("link: " + e.attr("abs:href"));
}

To learn more, visit Jsoup Docs 要了解更多信息,请访问Jsoup Docs

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM