`
Java_大猫
  • 浏览: 173936 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

httpclient4 网页抓取

    博客分类:
  • J2SE
 
阅读更多
最近在做全文检索。所以数据很纠结。没办法 抓一些行业新闻。于是乎用了 httpclient

上代码。分享下

TEbInformationModel model = new TEbInformationModel();
			
			HttpClient httpclient = new DefaultHttpClient();
			
			httpclient.getParams().setParameter("http.protocol.content-charset",HTTP.UTF_8);  
			httpclient.getParams().setParameter(HTTP.CONTENT_ENCODING, HTTP.UTF_8);  
			httpclient.getParams().setParameter(HTTP.CHARSET_PARAM, HTTP.UTF_8);  
			httpclient.getParams().setParameter(HTTP.DEFAULT_PROTOCOL_CHARSET,HTTP.UTF_8);
			httpclient.getParams().setParameter(HTTP.CONTENT_TYPE, HTTP.UTF_8);
			
			HttpPost httppost = new HttpPost(httpurl); 
			
			httppost.setHeader("Accept-Language", "zh-cn,zh;q=0.5");  
			httppost.setHeader("Accept-Charset", "GB2312,utf-8;q=0.7,*;q=0.7");  
			
			
			httppost.getParams().setParameter("http.protocol.content-charset",HTTP.UTF_8);  
	        httppost.getParams().setParameter(HTTP.CONTENT_ENCODING, HTTP.UTF_8);  
	        httppost.getParams().setParameter(HTTP.CHARSET_PARAM, HTTP.UTF_8);  
	        httppost.getParams().setParameter(HTTP.DEFAULT_PROTOCOL_CHARSET, HTTP.UTF_8);
	        httppost.getParams().setParameter(HTTP.CONTENT_TYPE, HTTP.UTF_8);

			HttpResponse response = httpclient.execute(httppost); 

	        
	        
			InputStream is = response.getEntity().getContent(); 
			BufferedReader br = new BufferedReader(new InputStreamReader(is,"GBK"));
			StringBuffer sbf = new StringBuffer();
			String line = null;
			while ((line = br.readLine()) != null)
			{
			sbf.append(line);
			}
			/** 回收资源 */
			br.close();
			
			String title = getSubTitle(getStringNoBlank(getTitle(sbf.toString(),"title")));
			String context = getSubContext(getStringNoBlank(getTitle(sbf.toString(),"content")));
			String key = getSubKey(getStringNoBlank(getTitle(sbf.toString(),"key")));
			
			System.out.println("标题:"+title);
			System.out.println("内容:"+context);
			System.out.println("关键字:"+key);


正则匹配的部分
private  String getStringNoBlank(String str) {      
        if(str!=null && !"".equals(str)) {      
            Pattern p = Pattern.compile("\\s*|\t|\r|\n");      
            Matcher m = p.matcher(str);      
            String strNoBlank = m.replaceAll("");      
            return strNoBlank;      
        }else {      
            return str;      
        }           
    }
	
	
	
	public  String getSubTitle(String str){
		return str.substring(str.indexOf("<h1>")+4, str.lastIndexOf("</h1>"));
	}
	public  String getSubContext(String str){
		return str.substring(str.indexOf("<P>")+3, str.lastIndexOf("</P>"));
	}
	public  String getSubKey(String str){
		return str.substring(str.indexOf("</b>")+4, str.lastIndexOf("</p>"));
	}
	
	private String getTitle( String s,String type)
	 {
	  String regex = null;
	  String title = "";
	  final List<String> list = new ArrayList<String>();
	 
	  if("title".equals(type)){
		  regex = "<div class=\"zz_leftneirong1\">.*?</h1>";
	  }else if("content".equals(type)){
		  regex = "<div  class=\"zz_leftneirong4\" id=\"content\" name=\"content\">.*? </div>";
	  }else{
		  regex = " <p class=\"key\"><b>本文关键词:</b>.*?</p>";
	  }
	  final Pattern pa = Pattern.compile(regex, Pattern.CANON_EQ);
	  final Matcher ma = pa.matcher(s);
	  while (ma.find())
	  {
	   list.add(ma.group());
	  }
	  for (int i = 0; i < list.size(); i++)
	  {
	   title = title + list.get(i);
	  }
	  return title;
	 }
	


分享到:
评论

相关推荐

    httpClient+jsoup 抓取网页数据

    下面我们将详细探讨这两个库及其在网页抓取中的应用。 HttpClient是由Apache软件基金会开发的一个库,主要用于执行HTTP请求。它提供了全面的HTTP协议支持,包括GET、POST、PUT等方法,以及处理Cookie、重定向、认证...

    HttpClient抓取网页Demo

    HttpClient是Apache基金会开发的一个Java库,它为Java程序员提供了一个强大的工具来执行...配合其他工具,如Jsoup,可以实现网页抓取、数据提取等任务。对于需要从Web获取信息的项目,HttpClient是一个不可或缺的工具。

    httpclient远程网页抓取工具

    HTTPClient是Apache软件基金会的 HttpClient项目提供的一款Java库,它为Java程序员提供了强大的HTTP客户端功能,使得能够方便地进行网络请求和网页抓取。在本文中,我们将深入探讨HTTPClient库的基本概念、主要功能...

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

    在IT领域,网络爬虫是获取网页...总的来说,HttpClient和Jsoup是Java开发者进行网页抓取和数据提取的得力助手。通过熟悉这两个库的使用,可以轻松地构建出强大的网络爬虫系统,从而高效地获取和分析互联网上的信息。

    HttpClient网页抓取工具包整合

    HttpClient是Apache软件基金会的一个开源项目,它提供了一个强大的、高度可定制...通过提供的 httpClient网页抓取工具整合包,你可以快速地搭建起一个基本的网页抓取框架,进一步深入学习和实践HttpClient的各项功能。

    httpclient抓取网页数据和所需的10个jar包

    HttpClient是Apache软件基金会开发的一个Java库,专门用于发起HTTP请求并处理响应,是进行网页抓取的重要工具。本篇文章将详细介绍如何使用HttpClient库抓取网页数据,并讨论与之相关的10个关键jar包。 HttpClient...

    httpclient4

    - **网页抓取**:HttpClient 可用于抓取网页内容,进行网页分析或数据提取。 - **API调用**:对于RESTful API,HttpClient 是一个理想的客户端工具,可以方便地发送JSON或XML数据。 - **文件上传下载**:通过POST...

    c#网页抓取

    总的来说,C#进行网页抓取的关键知识点包括:`WebClient`或`HttpClient`进行HTTP请求,`HtmlAgilityPack`解析HTML,异步编程处理大量请求,延时策略防止封禁,以及数据库交互。通过学习和实践这些技术,开发者可以...

    网页抓取例子

    4. **网页抓取的挑战与应对**: - 动态加载:许多现代网页使用AJAX技术,需要模拟用户交互或使用Selenium等工具抓取数据。 - 反爬机制:网站可能设置验证码、IP限制或User-Agent检查,需要更换代理IP或修改User-...

    c# 网页抓取分析 表格图形生成

    本主题聚焦于利用C#进行网页抓取、数据分析以及表格和图形生成,这些都是现代数据驱动应用的重要组成部分。 首先,我们要理解网页抓取的概念。网页抓取,也称为网络爬虫或数据抓取,是指通过自动化程序从互联网上...

    网页抓取教程.zip

    3. **Java库的使用**:Java中有多个库支持网页抓取,如Jsoup和Apache HttpClient。Jsoup是一个强大的库,能解析HTML并提供类似DOM的API来查找和提取数据。Apache HttpClient则专注于网络请求,提供高级的HTTP客户端...

    使用HttpClient获取网页html源代码.zip

    在Android开发中,有时我们需要从网络上获取网页的HTML源代码,以便进行数据抓取或者模拟用户交互。HttpClient是Java中一个常用的HTTP客户端库,它允许我们方便地发送HTTP请求并接收响应。在这个名为"使用HttpClient...

    asp.net 网页抓取技术

    ASP.NET网页抓取技术是一种利用编程手段从互联网上获取数据并进行分析的技能,它能够帮助开发者自动收集、处理和存储网页上的信息。在ASP.NET框架下,网页抓取主要涉及HTTP请求、HTML解析和数据提取等核心概念。本文...

    java网页抓取demo

    Java网页抓取是一种技术,主要用于从互联网上自动提取或获取数据。这个"java网页抓取demo"项目提供了实现这一功能的实例代码。项目中的jar包是实现网页抓取的关键依赖库,包括Apache Commons Logging和HTTP Client。...

    java网页抓取数据

    Java网页抓取数据是互联网数据挖掘的一个重要领域,它允许开发者通过编程方式获取网页上的信息,从而实现自动化分析、监控或构建智能应用。在Java中,我们通常使用HTTP客户端库和HTML解析工具来实现这一目标。本文将...

    java httpclient 抓取 数据 和jar 包

    在本篇文章中,我们将深入探讨如何使用Java HttpClient来抓取网页数据以及如何打包成jar文件。 **一、Java HttpClient简介** Java HttpClient 是 Apache HttpClient 库的一部分,它提供了丰富的功能,包括连接管理...

    java抓取网页三种方式

    Java 抓取网页三种方式 Java 抓取网页是一种常见的应用场景,在 Web 开发和爬虫应用中尤其重要。...同时,我们也学习了相关的知识点,如使用 URL 连接、HttpURLConnection 和 Apache HttpClient 库来抓取网页。

    Jsoup+httpclient模拟登陆和抓取页面.pdf

    Jsoup+httpclient模拟登陆和抓取页面.pdf

    Jsoup+httpclient 模拟登陆和抓取

    Jsoup+httpclient 模拟...通过上述知识点,可以了解到使用Jsoup和HttpClient进行网页登录和内容抓取的完整流程和关键技术点。在实际开发中,这些知识点可以帮助开发者高效地处理HTML页面数据,实现对网页的自动化操作。

Global site tag (gtag.js) - Google Analytics