`
commissioner
  • 浏览: 23076 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

HttpClient抓取网页实例

 
阅读更多

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

public class Client 
{

	public static void test(String url,String encode,String path)
	{
		HttpClient httpClient = new HttpClient();
		
//		httpClient.getHostConfiguration().setProxy(proxyHost, proxyPort) 可设置代理
		
		// post方法
		PostMethod postMethod = new PostMethod(url);
		
		
		String from = "广州";
		String to = "成都";
		
		//需要的参数名称和值
		NameValuePair[] paras = new NameValuePair[3];
		paras[0] = new NameValuePair("from", from);
		paras[1] = new NameValuePair("to",to);
		paras[2] = new NameValuePair("act", "3");
		
		postMethod.addParameters(paras);
		postMethod.setRequestHeader("User-Agent",  "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)");
		postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset="+encode);
		postMethod.setRequestHeader("Referer", "http://www.ttkdex.com/");
		
		BufferedReader reader = null;
		BufferedWriter writer = null;
		
		try 
		{
			//响应状态码 成功为200
			int code = httpClient.executeMethod(postMethod);
			if(HttpStatus.SC_OK != code)
			{
				System.out.println("响应不成功");
				return;
			}	
			
			System.out.println("响应成功:code="+code);
			
		    reader = new BufferedReader(new InputStreamReader(postMethod.getResponseBodyAsStream(), encode));
		    writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path), encode));
		    
		    String line = null;
		    while ((line = reader.readLine()) != null) 
		    {
		    	writer.write(line+"\r\n");
		    }
		    reader.close();
			writer.close();
			
			System.out.println("success ! result in file : "+path);
		} 
		catch (HttpException e)
		{
			e.printStackTrace();
		}
		catch (IOException e) 
		{
			e.printStackTrace();
		}
		finally
		{
			//完成,释放连接,释放资源	
			postMethod.releaseConnection();
			try 
			{
				if(reader != null)
				{
					reader.close();
				}
				if(writer != null)
				{
					reader.close();
				}
			} 
			catch (IOException e) 
			{
				e.printStackTrace();
			}
		}
		
		System.out.println("run over ...");
		
	}
	
	
	
	public static void main(String[] args) 
	{
		String url = "http://qq.ip138.com/train/train_search.asp";
		String encode = "gb2312";
		String savePath = "E:/test.html";
		test(url,encode,savePath);
	}
	
	
}
分享到:
评论

相关推荐

    HttpClient抓取网页Demo

    在本文中,我们将深入探讨HttpClient的基本用法,以及如何使用它来抓取网页内容。 首先,你需要在项目中引入HttpClient的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org....

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

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

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

    使用HttpClient抓取网页数据的基本步骤如下: 1. **创建HttpClient对象**:首先,你需要创建一个HttpClient实例,这通常是通过`HttpClientBuilder`或`HttpClients`类完成的。 2. **构建HttpGet请求**:对于简单的...

    java httpclient 抓取 数据 和jar 包

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

    httpClient+jsoup 抓取网页数据

    总之,HttpClient和Jsoup是Java开发者进行网页数据抓取的强大工具。HttpClient提供可靠的HTTP通信,而Jsoup则简化了HTML解析和数据提取的过程。结合两者,你可以高效地从各种网页中获取你需要的信息。在实际项目中,...

    httpclient远程网页抓取工具

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

    httpclient模拟登录实例

    通过HttpClient,开发者可以方便地创建复杂的HTTP请求,实现自动化测试、网页抓取、API调用等功能。 模拟登录通常涉及以下几个步骤: 1. **构建请求**:首先,我们需要构造一个POST请求,因为登录通常涉及到表单...

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

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

    HttpClient 登录163邮箱

    - `HttpClient`实例化:创建一个`HttpClient`对象,可以设置连接超时、重试策略等参数。 - `HttpGet`与`HttpPost`:分别用于发送GET和POST请求。设置请求URL,并可添加请求头或参数。 - `HttpResponse`处理:执行...

    java抓取网页数据

    在“java抓取网页数据”这个主题中,我们将深入探讨如何利用Java来抓取并处理互联网上的信息。 首先,我们要了解什么是网络爬虫。网络爬虫(Web Crawler)是自动遍历互联网的程序,通过抓取网页内容并存储在本地,...

    java爬虫抓取网页数据教程.pdf

    本文是一份关于使用Java语言进行网页数据抓取的教程,主要介绍了使用Apache HttpClient这个库来完成网络请求和数据获取的操作。Apache HttpClient是一个支持HTTP协议的客户端工具,被广泛应用于Java爬虫开发中,帮助...

    java网页抓取数据

    例如,使用Apache HttpClient,你可以创建一个HttpClient实例,配置请求头,然后执行HttpGet或HttpPost请求来获取网页内容: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ...

    jsoup httpclient 爬取网页并下载google图标

    总结来说,这个项目或教程涉及使用Jsoup解析和抓取网页,用HttpClient下载资源,同时利用Apache Commons库增强功能,提供了一种综合运用Java网络编程技术的实例。在实际开发中,这样的技术可以广泛应用于数据抓取、...

    详解Java两种方式简单实现:爬取网页并且保存

    这两种方法都可以实现网页的爬取和保存,`URLConnection`适用于简单的爬取需求,而`HttpClient`则提供了更多功能和更好的灵活性,适合处理复杂的情况。选择哪种方法取决于具体项目的需求和性能考虑。在实际开发中,...

    java简单抓取网页内容

    在Java编程语言中,抓取网页内容是一项常见的任务,尤其对于数据分析、信息提取以及网络爬虫等应用场景。本文将深入探讨如何使用Java实现简单的网页内容抓取,适合初学者入门学习。 首先,我们需要理解网页抓取的...

    HttpClient应用实例2

    本实例主要关注如何解决在使用HttpClient进行文件上传时可能出现的乱码问题。 在HttpClient中,乱码问题通常出现在两个方面:请求参数的编码和响应内容的解码。请求参数的编码涉及到URL编码,特别是包含非ASCII字符...

    httpClient和htmlparse获取网页数据使用jar

    在IT行业中,获取网页数据是常见的任务之一,用于数据分析、信息抓取或自动化测试等场景。HttpClient和HtmlParser是两个非常实用的Java库,分别用于处理HTTP通信和解析HTML内容。下面将详细介绍这两个库以及如何结合...

    HttpClient 网络抓取

    在HttpClient和Jsoup结合使用时,HttpClient负责获取网页源代码,Jsoup则负责解析和提取数据,两者协同工作,实现高效的网络抓取任务。对于标签中提到的“源码”部分,深入理解这两者的内部实现可以帮助我们更好地...

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

    在Android开发中,有时我们需要从网络获取HTML源代码来实现某些功能,比如网页抓取、网页数据解析等。本例子提供了使用HttpClient和URLConnection两种方式来实现这个目标。这两种方法都是Android SDK内置的网络访问...

Global site tag (gtag.js) - Google Analytics