使用jsoup从网页中提取非脚本文本内容

网页中的脚本一般在<script>标签中,例如

<script type="text/javascript">
F.use(["/static/common/ui/tangram/base/base.js","/static/widget/common/searchbox/searchbox.js","/static/common/ui/vs/suggestion/suggestion.js"], function(baidu,searchbox,suggestion){
baidu.dom.ready(function(){
searchbox();
if (navigator.cookieEnabled && !/sug?=0/.test(document.cookie)){
suggestion();
}
});
});
</script>
所以我的简单的做法就是遍历这个HTML排除Tagname = "script"的节点。

代码:

import java.io.IOException;
	import java.util.ArrayList;
	import java.util.List;

	import org.jsoup.Jsoup;
	import org.jsoup.nodes.Document;
	import org.jsoup.nodes.Element;
	import org.jsoup.select.Elements;

	public class html
	{
	    
	    /**
	     * @param args
	     * @throws IOException 
	     */
	    public static void main(String[] args)
	        throws IOException
	    {
	        Document doc = Jsoup.connect("http://news.baidu.com").get(); //获取网页内容
	        
	               
	        
	        //获取网页内容中非脚本信息
	        getTag(doc);
	           
	    }
	 
	    public static void getTag(Document doc)
	    {
	        Elements el = doc.select("*");//先遍历整个HTML
	        List<String>list = new ArrayList<String>();
	        for(Element element:el){
	        	String text = element.tagName();
	        	if(text.endsWith("script"))continue;//删除HTML中的脚本
	        	else{ 
	        		if(element.hasText() == true)list.add(element.text()+'\n');
	        		}
	        	
	        }
	       
	        System.out.println(list);
	    }

转载于:https://my.oschina.net/u/138210/blog/129261

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值