`
阅读更多
这是我自己写的一个对HttpClient的一个改进
代码写上

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

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;

public class HttpUtil {
private HttpClient httpClient ;
private HttpResponse response ;
public HttpUtil(){
httpClient = new DefaultHttpClient() ;
}
public HttpUtil(String ip ,int port){
httpClient = new DefaultHttpClient() ;
this.setProxy(ip, port) ;
}
public String getMethodHt(String url){
HttpGet get = new HttpGet(url) ;
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String html = "" ;
try {
html = httpClient.execute(get,responseHandler) ;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
get.abort() ;
}
return html ;
}
public HttpResponse getMethodRe(String url){
HttpGet get = new HttpGet(url) ;
try {
response = httpClient.execute(get) ;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
get.abort() ;
}
return response ;
}
public String getMethodHt(String url,Map<String,String> params){
HttpGet get = new HttpGet(url) ;
Set<String> set = params.keySet() ;
HttpParams basicParams = new BasicHttpParams() ;
for(String key: set){
basicParams.setParameter(key,params.get(key)) ;
}
get.setParams(basicParams) ;
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String html = "" ;
try {
html = httpClient.execute(get,responseHandler) ;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
get.abort() ;
}
return html ;
}
public HttpResponse getMethodRe(String url,Map<String,String> params){

HttpGet get = new HttpGet(url) ;
Set<String> set = params.keySet() ;
HttpParams basicParams = new BasicHttpParams() ;
for(String key: set){
basicParams.setParameter(key,params.get(key)) ;
}
get.setParams(basicParams) ;
try {
response = httpClient.execute(get) ;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
get.abort() ;
}
return response ;
}
public String postMethodHt(String url){
HttpPost post = new HttpPost(url) ;
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String html = "" ;
try {
html = httpClient.execute(post,responseHandler) ;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
post.abort() ;
}
return html ;
}
public HttpResponse postMethodRe(String url){
HttpPost post = new HttpPost(url) ;
try {
response = httpClient.execute(post) ;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
post.abort() ;
}
return response ;
}
public String postMethodHt(String url , Map<String,String> params){
HttpPost post = new HttpPost(url) ;
List<BasicNameValuePair> qparams = new ArrayList<BasicNameValuePair>() ;
Set<String> set =  params.keySet() ;
for(String key : set){
qparams.add(new BasicNameValuePair(key,params.get(key))) ;
}
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String html = "" ;
try {
post.setEntity(new UrlEncodedFormEntity(qparams, HTTP.UTF_8));
html = httpClient.execute(post,responseHandler) ;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
post.abort() ;
}
return html ;
}
public HttpResponse postMethodRe(String url,Map<String,String> params ){
HttpPost post = new HttpPost(url) ;
List<BasicNameValuePair> qparams = new ArrayList<BasicNameValuePair>() ;
Set<String> set =  params.keySet() ;
for(String key : set){
qparams.add(new BasicNameValuePair(key,params.get(key))) ;
}
try {
post.setEntity(new UrlEncodedFormEntity(qparams, HTTP.UTF_8));
response = httpClient.execute(post) ;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
post.abort() ;
}
return response ;
}
public void setProxy(String ip ,int port){
HttpHost proxy = new HttpHost(ip,port) ;
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, 
                proxy) ;
}
public void close(){
if(httpClient!=null)
httpClient.getConnectionManager().shutdown();
}
}
利用这个类可以更好地操作对http操作 ,但是不完善
其实抓取信息 1.http协议的了解
             2.抓取网页内容
             3.正则表达式

分享到:
评论

相关推荐

    python人人网信息抓取与数据挖掘

    人人网信息抓取与数据挖掘 人人网安全措施加强了,无法抓取原本没有权限访问的内容了。 不过,通过浏览器可以访问的内容,依旧可以抓取。 环境要求 ubuntu/win7/xp 皆可。 python3.2 --&gt; python2.7 igraph/...

    Winform抓取赶集网车票转让信息

    《使用Winform抓取赶集网车票转让信息的实现详解》 在信息化时代,数据的获取和处理已经成为日常工作中不可或缺的一部分。本文将详细介绍如何利用Winform和C#技术,结合正则表达式,实现一个自动抓取赶集网车票转让...

    基于C# 网页信息抓取

    本程序编写了一个从网页中抓取信息(如最新的头条新闻,新闻的来源,标题,内容等)的类,而且本程序文件夹中含有word文件,文件将介绍如何使用这个类来抓取网页中需要的信息。文件将以抓取博客园首页的博客标题和...

    网络爬虫,抓取视频信息

    在我们的视频信息抓取项目中,Hibernate将用于管理和存储从网上抓取到的视频元数据,如视频标题、时长、来源等。 3. **Spring**:Spring框架是Java企业级应用开发的核心框架,它提供了依赖注入、面向切面编程等功能...

    百度地图抓取 抓取地址信息

    本项目聚焦于“百度地图抓取 抓取地址信息”,这涉及到使用特定的技术手段来从百度地图API中获取地理位置和相关地址数据。 首先,关键词“百度地图”表明我们将讨论的是百度公司提供的地图服务。百度地图是领先的...

    抓取中国招标网数据源码

    标题中的“抓取中国招标网数据源码”指的是一个C#编程项目,目的是自动化地从中国招标网这个网站上获取相关的招标信息。这样的程序通常利用网络爬虫技术,通过解析HTML网页来提取需要的数据。 首先,我们要理解数据...

    基于Python的人人网信息抓取与社交网络分析设计源码

    该项目是一款基于Python开发的人人网信息抓取与社交网络分析工具,源码包含35个文件,涵盖23个Python脚本、3个Markdown文档、3个文本文件、2个INI配置文件、2个PNG图像文件、1个Git忽略规则文件以及1个ZIP压缩文件。...

    特定网站信息的抓取工具

    在IT领域,网站信息的抓取是数据挖掘和分析中的重要环节。这通常涉及到网络爬虫(Web Crawler)的开发,它能够自动化地浏览互联网并下载特定网站的数据。本工具旨在提供一种方法来高效、定向地获取特定网站的信息,...

    亚马逊爬虫抓取商品信息并数据分析.zip

    亚马逊爬虫抓取商品信息并数据分析.zip亚马逊爬虫抓取商品信息并数据分析.zip亚马逊爬虫抓取商品信息并数据分析.zip亚马逊爬虫抓取商品信息并数据分析.zip亚马逊爬虫抓取商品信息并数据分析.zip亚马逊爬虫抓取商品...

    网页爬虫工具能够抓取网页信息的软件

    【标题】提到的"网页爬虫工具能够抓取网页信息的软件",正是指的这类工具在IT领域的应用。 PClawer V1.1是一款绿色版的网页爬虫工具,它具备高度定制化的功能,适用于对网页数据有特定需求的高级用户。【描述】中...

    matlab爬虫抓取高铁信息数据

    抓取G529数据中...完成! 抓取G1204数据中...完成! 抓取G279数据中...完成! 抓取G276数据中...完成! 抓取G1022数据中...完成! 抓取G280数据中...完成! 抓取G1206数据中...完成! 抓取G1224数据中...完成! 抓取G818数据...

    Web-Scraping-with-Python_Python网页信息抓取_Python抓取网页_jupyter_Python抓

    **Python网页信息抓取技术详解** 网页信息抓取,也称为网络爬虫或网页抓取,是通过自动化程序从互联网上获取大量数据的过程。在这个领域,Python语言因其强大的库支持和简洁的语法而成为首选工具。本教程将深入探讨...

    获取全国中学信息(人人网)

    标题 "获取全国中学信息(人人网)" 暗示我们关注的是一个涉及数据抓取或网络爬虫的项目,具体是从人人网这个社交平台上抓取全国中学的相关信息。这通常涉及到编程语言如Python,可能使用了requests库来发送HTTP请求...

    电信设备-一种环保信息网格抓取方法.zip

    在电信设备领域,环保信息网格抓取方法是至关重要的技术之一,它涉及到网络数据的高效收集、处理和分析,以支持可持续发展和绿色通信。这种技术的实施旨在减少能源消耗,降低环境污染,并优化电信基础设施的运行。...

    非常实用的实时抓取火车票转让信息,第一时间秒杀转让车票,

    本项目针对火车票转让信息的实时抓取,帮助用户在第一时间掌握转售票源,提升购票的成功率。以下是对这个项目的详细解读: 1. **实时数据抓取**:实时抓取技术涉及到网络爬虫和数据解析。网络爬虫是一种自动浏览...

    静态页面抓取工具

    在IT行业中,网页抓取是一项重要的技术,它用于自动化地从互联网上收集信息。静态页面抓取工具就是专为此目的设计的软件,它们能够高效地下载并存储网站的静态HTML内容,以便离线查看或者进一步的数据分析。本篇文章...

Global site tag (gtag.js) - Google Analytics