jsoup解析html简单总结

jsoup(Java HTML Parser)java html解析器。

使用jsoup解析html很简单,只要抓到最重要的点(获得Document),剩下的代码很容易就顺下来。


Document document = Jsoup.parse(html);

通过Jsoup中静态方法解析HTML文本内容(也可以直接connect网址get),解析成Document对象,接下来操作就是在玩儿这个Document对象。

按照解析html中的图片地址为例,这个时候思路应该是拿到所有的img标签。


直接IDE自动生成,看看哪个方法像解析标签方法


Elements elements = document.getElementsByTag("img");

猜一下,Elements都可能继承集合类,是的,继承的ArrayList<Element>


接下来思路更简单了,迭代Elements,取出每一个Element,想取什么就很简单了。


贴示例代码:(用到了jsoup包,为了读取url内容,还用了commons-io包)



import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;

import org.apache.commons.io.IOUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class JsoupTest {

	
	public static void main(String[] args) throws IOException {
		String url = "https://segmentfault.com/q/1010000002800016";
		String html = getURLHTMLText(url);
		System.out.println(html);
		Document document = Jsoup.parse(html);
		//Elements继承ArrayList<Element>
		Elements elements = document.getElementsByTag("img");
	
		for (int i = 0; i < elements.size(); i++) {
			Element element = elements.get(i);
			String src = element.attr("src");
			System.out.println(src);
		}
	}
	
	/***
	 * 读取url html文本内容
	 * @param urlStr
	 * @return
	 * @throws IOException
	 */
	public static String getURLHTMLText(String urlStr) throws IOException{
		URL url = new URL(urlStr);
		URLConnection urlConnection = url.openConnection();
		InputStream is = urlConnection.getInputStream();
		List<String> lins = IOUtils.readLines(is);
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < lins.size(); i++) {
			sb.append(lins.get(i));
		}
		return sb.toString();
		
		
		
	}
}


如有错误,欢迎指正

end


猜你喜欢

转载自blog.csdn.net/wjw521wjw521/article/details/78818049