HttpClient :
最近要 抓取其他网站的数据, 尝试了 HttpClient
http://hc.apache.org/ 官网提供了很详细了的 例子
尝试连接的次数
HttpRequestRetryHandler myRetryHandler = new HttpRequestRetryHandler() {
public boolean retryRequest(IOException exception, int executionCount,HttpContext context) {
System.out.println("尝试连接次数:-------:"+executionCount);
if (executionCount >= 5) {
// 如果超过最大重试次数,那么就不要继续了
return false;
}
if (exception instanceof NoHttpResponseException) {
// 如果服务器丢掉了连接,那么就重试
return true;
}
if (exception instanceof SSLHandshakeException) {
// 不要重试SSL握手异常
return false;
}
HttpRequest request = (HttpRequest) context.getAttribute(
ExecutionContext.HTTP_REQUEST);
boolean idempotent = !(request instanceof
HttpEntityEnclosingRequest);
if (idempotent) {
// 如果请求被认为是幂等的,那么就重试
return true;
}
return false;
}
};
GET:
@Test
public void test_OOC(){
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
//设置
httpclient.setHttpRequestRetryHandler(myRetryHandler);
List<NameValuePair> formparams = new
ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("eltype", "ct"));
formparams.add(new BasicNameValuePair("cont_no", "XXX"));
URI uri = URIUtils.createURI("http", "www.XXXX.com", -1,
"XXXXXXX",
URLEncodedUtils.format(formparams, "UTF-8"), null);
HttpGet httpget = new HttpGet(uri);
System.out.println(httpget.getURI());
//获得String 的方法
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httpget, responseHandler);
//处理HTML
//Document doc = Jsoup.parse(responseBody);
//Elements elements = doc.select("#printContent");
saveFile("OOCL",responseBody);
} catch (Exception e) {
e.printStackTrace();
} finally {
httpclient.getConnectionManager().shutdown();
}
}
Post:
List<NameValuePair> formparams = new
ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("userId", "null"));
formparams.add(new BasicNameValuePair("iId", "182000"));
formparams.add(new BasicNameValuePair("NameList", ""));
formparams.add(new BasicNameValuePair("type", "A"));
UrlEncodedFormEntity urlEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
HttpPost httppost = new HttpPost("xxxxxxxx");
public static void saveFile(String fileName,String data){
BufferedWriter bw= null;
try{
String path="C:\\Users\\Thomas\\Desktop\\Tracking\\"+fileName+".html";
File file = new File(path);
if(!file.exists()){
file.createNewFile();
}
bw = new BufferedWriter(new FileWriter(path));
bw.write(data) ;
}catch(Exception e){
e.printStackTrace();
}finally{
if(null!=bw){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
JSOUP:
官网:www.jsoup.com
他的解析功能也很 强大,类似 JQUERY ,比较好用, 至于HTML parser 就没有 尝试使用了
POST:
Document doc = Jsoup.connect("http://XXXXXXXp").data("tr_num", "unit_no").data("tf_bl_no","XXXX").post();
Elements elements = doc.select("table").eq(2);
get:
Document doc = Jsoup.connect("http://www.cma-cgm.com/eBusiness/Tracking/Default.aspx").data("ContNum", "CMAU5364714").get();
分享到:
相关推荐
利用tomcat搭建支持ssl的服务,并由httpClient进行https访问。整个过程简单明了。 1.生成key. 2.配置tomcat支持ssl 3.利用一个简单例子用httpClient连接ssl
httpClient4.1入门教程提供的了httpClient4.1的基本使用和说明,可以使初学者轻松上手: •基于标准,纯净的java语言.实现了Http1.0和Http1.1 •支持HTTPS协议.
Java爬虫【一篇文章精通系列-案例开发-巨细】HttpClient5 + jsoup + WebMagic + spider-flow【万字长文一篇文章学会】
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文利用官方例子来介绍HttpClient的用法。
httpClient4.1入门教程.pdf httpClient4.1入门教程.pdf
HttpClient&&HtmlParser(Crawler)网络爬虫 HttpClient&&HtmlParser(Crawler)网络爬虫
httpclient4.1中文操作说明文档 为官方发布操作文档的中文翻译 涵盖httpclient各个使用方面 附带范例代码
基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+...
httpClient4.5.3+Jsoup1.10.2 commons-codec-1.9.jar commons-logging-1.2.jar httpclient-4.5.3.jar httpcore-4.4.6.jar jsoup-1.10.2.jar
基于SSM+maven+httpClient+jsoup实现小说网站项目源码.zip 基于SSM+maven+httpClient+jsoup实现小说网站项目源码.zip 基于SSM+maven+httpClient+jsoup实现小说网站项目源码.zip 基于SSM+maven+httpClient+jsoup实现...
httpclient-4.1-alpha1.jar httpclient-4.1-alpha1.jar httpclient-4.1-alpha1.jar httpclient-4.1-alpha1.jar httpclient-4.1-alpha1.jar
Commons HTTPClient4.X组件应用示例
使用三种方案实现网页爬虫: 1、httpclient 2、jsoup 3、httpclient+jsoup
httpclient-4.1.jar
使用httpClient采集数据,jsoup解析页面
。
方法和原有低版本的API不太兼容,package路径变为:org.apache.http.相关包,细节使用方式请参考我的博客: http://blog.csdn.net/xieyuooo/article/details/7210846 如还有更加细致的问题,请在博客中留言,谢谢...