【问题标题】:How do I display just the html tag in JSoup java?如何在 JSoup java 中只显示 html 标签?
【发布时间】:2015-02-06 09:56:56
【问题描述】:

我正在做一个学校项目,并试图解析一个 html 网页以仅显示标签,就像下面没有结束标签的输出一样。 (我手动编码)

<html>
 <head> 
  <title>
  <basefont> 
 <body> 
  <h1>
  <h2>

到目前为止,这是我的主要方法中的代码。

public class ReadWithScanner {
public static void main(String[] args) throws IOException 
{
    String URL ="http://csb.stanford.edu/class/public/pages/sykes_webdesign/05_simple.html";
    Document doc = Jsoup.connect(URL).get();        
    //Element p = doc.select("p");
    //Elements p = doc.getElementsByTag("h6");
    Elements p = doc.select("html");
    //System.out.println(p);

     DoublyLinkedList theList = new DoublyLinkedList();

      theList.insert(p);      // insert at front

      theList.displayTree();
}

}

到目前为止,这是我的输出的几行。

【问题讨论】:

  • 有什么问题?
  • 如何在 JSoup java 中只显示 html 标签?

标签: java html eclipse parsing jsoup


【解决方案1】:
package Scrapper;

import java.util.LinkedList;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Node;
import org.jsoup.select.NodeVisitor;

class TagVisitor implements NodeVisitor {

    public static class TagInfo {

        public String name;
        public int depth;

        TagInfo(String name, int depth) {
            this.depth = depth;
            this.name = name;
        }
    }

    private LinkedList<TagInfo> tags = new LinkedList<>();

    public void head(Node node, int depth) {
        String tag = node.nodeName();
        if(!tag.startsWith("#")) {
            tags.add(new TagInfo('<'+node.nodeName()+'>', depth)); 
        }
    }

    public void tail(Node node, int depth) {
        //Do nothing
    }

    public LinkedList<TagInfo> getTags() {
        return tags;
    }

    public void printTree() {
        for(TagInfo info : tags) {
            String indentation = new String(new char[info.depth*2]).replace('\0', ' ');
            System.out.println(indentation + info.name);
        }
    }
}

public class MainJsoup {

    public static void main(String[] args) throws Exception {

        //InputStream stream = new FileInputStream("test.html");
        //Document doc = Jsoup.parse(stream, "UTF-8", "");
        String URL ="http://csb.stanford.edu/class/public/pages/sykes_webdesign/05_simple.html";
        Document doc = Jsoup
                        .connect(URL)
                        .userAgent("Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201")
                        .timeout(2000)
                        .get();     
        TagVisitor visitor = new TagVisitor();
        doc.traverse(visitor);
        visitor.printTree();
    }
}

【讨论】:

  • 没问题。玩得开心。
猜你喜欢
  • 1970-01-01
  • 2023-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
相关资源
最近更新 更多