`

JSOUP抓取网页正文

阅读更多
package com.zs.action.admin;

import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

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



public class SpiderByJsoup {
	 
	public static String marchersTitle(String args) throws InterruptedException {
		String regex = "<h\\d[^>]*>";
		Pattern p = Pattern.compile(regex);
		Matcher match = p.matcher(args);
		if (match.find()) {
			return match.group();
		}
		return null;
	}
	
    public static List<String> getLinks(String url){
    	List<String> linkList = new ArrayList<String>();
    	 try{
  	        Document doc = Jsoup.connect(url).get();
  	        Elements links = doc.select("a[href]");
  	        for (Element link : links) {
  	        	linkList.add(link.attr("abs:href"));
  	        }
  		  }catch(Exception e){
  			  e.printStackTrace();
  		  }
    	 return linkList;
    }
	  public static void main(String[] args)  {
		  String url = "http://www.chongzuo.gov.cn/Index";
		  //List<String> linkList = getLinks(url);
		//Elements el = doc.select("div.articleTxtContent");
			//System.out.println("----------"+el.text());
		  Document doc;
		try {
			 doc = 
			 Jsoup.connect("http://society.people.com.cn/n/2015/0604/c136657-27104506.html").header("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2").get();
			 String title = marchersTitle(doc.html()).substring(1,3);
			 System.out.println(title);
			 Elements hElements = doc.select(title);
			 System.out.println("<div  style='font-family: Microsoft YaHei;color: #000;font-size: 24px;line-height: 44px;text-align: center'>"+hElements.get(0).text()+"</div>"+"<p style='font-size: 16px; line-height: 30px;'>"+"</p>");
			Elements elements =doc.getElementsByTag("div");
			
			int max = elements.get(0).text().length();
			int sear = 0;
			for (int i = 1; i < elements.size(); i++) {
				int len = elements.get(i).text().length();
				if(len>max){
					sear = i;
					max = len;
				}
			}

			Elements segMentElements = elements.get(sear).getElementsByTag("div");
			
			for(Element segMentElement:segMentElements){
				if (segMentElement.select("a").size()>1){//过滤不想要的标签.  
			        continue;  
			    }
				
				Elements contentElements = segMentElement.getElementsByTag("p");
				for(Element contentElement:contentElements){
					if( contentElement.text().length()>0 && contentElement.text().length()<10  ){
						continue;
					}
					
						System.out.println("<p>"+contentElement.html()+"</p>");
				}
			}
			
			
			/*String charset = SpiderByJsoup.getCharset("http://www.chongzuo.gov.cn/front/newOnly?id=13002");
			System.out.println("charset----------------"+charset);
			Parser parser = Parser.createParser(doc.body().text(),charset);*/
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	    }
	  /*
	  public static String getCharset (String siteurl) throws Exception{
			URL url = new URL(siteurl);
			Document doc = Jsoup.parse(url, 6*1000);
			Elements eles = doc.select("meta[http-equiv=Content-Type]");
			Iterator<Element> itor = eles.iterator();
			while (itor.hasNext()) 
				return SpiderByJsoup.matchCharset(itor.next().toString());
			return "gb2312";
		}
	  public static String matchCharset(String content) {
			String chs = "gb2312";
			Pattern p = Pattern.compile("(?<=charset=)(.+)(?=\")");
			Matcher m = p.matcher(content);
			if (m.find())
				return m.group();
			return chs;
		}*/
}
分享到:
评论

相关推荐

    httpClient+jsoup 抓取网页数据

    4. **结合HttpClient和Jsoup抓取网页数据**: - 使用HttpClient发送HTTP请求,获取网页的HTML内容。 - 将HttpClient获取的HTML内容传递给Jsoup的parse方法,得到Document对象。 - 利用Jsoup的CSS选择器和数据提取...

    jsoup抓取网页教程

    很实用的jsoup抓取网页教程,通过查看此文档,您可以解决你在抓取网页过程中出现的问题

    jsoup抓取网页内容

    这是一个使用jsoup抓取网页内容的例子,适合从事手机开发的初学者学习

    Java使用Jsoup抓取网页关键信息并入库

    在"Java使用Jsoup抓取网页关键信息"这部分,我们需要了解以下几个知识点: 1. **Jsoup连接与解析网页**:使用Jsoup的`connect()`方法建立HTTP连接,然后通过`get()`或`post()`发送请求获取网页内容。获取到的HTML...

    java+jsoup抓取网页数据

    以下是关于如何使用Java+Jsoup抓取网页数据的详细讲解。 首先,你需要了解HTML的基础结构,因为Jsoup的工作原理是解析HTML文档并提供类似于DOM的API来操作这些文档。HTML是由标签组成的树形结构,每个标签都有属性...

    用jsoup抓取网页数据

    **Jsoup:网页数据抓取与JSON转换** ...本教程将深入探讨如何...通过以上步骤,你已经掌握了使用Jsoup抓取网页数据并转化为JSON格式的基本方法。在实际应用中,可以根据需求进行定制和扩展,以满足各种复杂场景的需求。

    Jsoup抓取整个网站

    **Jsoup:网页抓取与解析利器** Jsoup是一个用于处理实际世界HTML的Java库。它提供了非常方便的API,用于提取和操作数据,使用DOM,CSS和微选择器。在本篇中,我们将深入探讨如何使用Jsoup来抓取整个网站,并将其...

    使用Jsoup抓取网页关键信息并入库 ip天气查询并发送邮件

    本项目将讲解如何使用Jsoup来抓取网页的关键信息,并将其存储到数据库中,同时实现通过IP地址查询天气并以邮件形式发送。 首先,Jsoup提供了简洁的API,使得解析HTML变得易如反掌。我们可以利用Jsoup的`connect()`...

    安卓listview相关相关-实现浏览新浪新闻jsoup抓取网页信息listview列表下拉刷新.rar

    本项目"安卓listview相关-实现浏览新浪新闻jsoup抓取网页信息listview列表下拉刷新.rar"旨在演示如何结合Jsoup库从新浪新闻网站抓取信息,并通过ListView展示这些信息,同时实现下拉刷新功能,提升用户体验。...

    httpClient+jsoup抓取网页数据实例和jar包

    本教程将详细介绍如何结合使用HttpClient与Jsoup来抓取和处理网页数据。 HttpClient是Apache基金会开发的一个开放源代码库,它允许开发者发送HTTP请求并接收响应,支持多种HTTP协议版本。HttpClient提供了丰富的...

    jsoup获取网页正文

    **jsoup库详解及其在获取网页正文中的应用** 在网页数据抓取和处理领域,`jsoup`是一个非常实用的Java库,它提供了强大的HTML解析和操作功能。jsoup能够帮助开发者有效地解析网页内容,提取关键信息,尤其是网页...

    Jsoup抓取一个完整的网站.rar

    它提供了一种简单易用的API,使得开发者能够方便地抓取网页内容,处理DOM元素,以及执行CSS选择器。在这个"Jsoup抓取一个完整的网站.rar"压缩包中,你将找到一个示例项目,教你如何使用Jsoup配合Java来抓取一个网站...

    Http,Jsoup-网页数据抓取

    在这个主题中,我们将深入探讨两个关键概念:Http协议和Jsoup库,它们是实现网页数据抓取的核心工具。 **Http协议** 是互联网上应用最为广泛的一种数据传输协议,全称为超文本传输协议。它定义了客户端(通常是...

    使用JSoup实现新闻网页正文抽取

    在Eclipse中,将项目导入后,直接运行`NewsDown.java`,程序会根据设定的URL列表逐个抓取新闻正文,并可能将结果保存到文件或者数据库中。为了确保程序的稳定性和效率,可能还需要添加异常处理和多线程支持。 总之...

    使用jsoup获取网页内容并修改

    在Android开发中,Jsoup常用于网页数据抓取和页面内容的处理。以下将详细解释如何使用Jsoup来实现这个功能。 首先,我们需要在项目中引入Jsoup库。如果是在Gradle项目中,可以在build.gradle文件中添加依赖: ```...

    Jsoup抓取实例

    同时,对于动态加载的内容,可能需要利用Selenium等工具先触发页面的JavaScript执行,然后再用Jsoup抓取。 在提供的"coolook_self"压缩包文件中,可能包含了一个自定义的Jsoup抓取示例。这可能是一个Java项目,其中...

    Android App使用Jsoup抓取网页数据显示-附件资源

    Android App使用Jsoup抓取网页数据显示-附件资源

    jsoup 网页信息 抓取 选择器

    通过熟练掌握jsoup库,我们可以快速实现对特定网页的定制化抓取,例如在新浪高尔夫频道的例子中,提取新闻信息并进行分析或存档。此外,jsoup还提供了多种高级功能,满足了多样化的网页解析需求,使得开发者可以更...

    使用Jsoup,抓取整个网站(包括图片、js、css)

    在这个项目中,我们使用Jsoup配合Java,实现了抓取整个网站的功能,包括其中的图片、CSS样式表和JavaScript文件。通过这样的工具,我们可以对网页进行离线浏览或者备份,甚至进行数据分析。 首先,我们要理解Jsoup...

Global site tag (gtag.js) - Google Analytics