`
xpopi
  • 浏览: 63051 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

HttpClient4.1 & Jsoup 使用

 
阅读更多

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();

 

 

 

分享到:
评论

相关推荐

    httpclient4.1访问https的配置方法

    我们将涵盖SSL证书的生成、Tomcat服务器的SSL配置以及HttpClient的使用。” 【标签】:“httpclient4.1 https ssl” 【正文】: 在现代的互联网环境中,安全的通信协议是至关重要的。HTTPS(HTTP over SSL/TLS)...

    httpClient4.1入门教程

    在开始使用HttpClient之前,需要确保你的项目中已经引入了HttpClient4.1的库依赖。这通常可以通过Maven或Gradle等构建工具完成,添加对应的依赖配置。 **主要类解释**: - `HttpClient`:这是HttpClient的核心类,...

    httpClient4.1入门教程.

    1. 环境准备:要使用 HttpClient,首先需要在项目中引入对应的依赖库。对于 Maven 项目,可以在 pom.xml 文件中添加 HttpClient 相关的依赖项,通常包括 `httpclient` 和 `httpcore` 两个模块。 2. 几个主要类解释...

    Java爬虫【一篇文章精通系列-案例开发-巨细】HttpClient5 + jsoup + WebMagic + spider

    本篇文章以"一篇文章精通系列-案例开发-巨细"为主题,详细介绍了如何使用HttpClient5、jsoup、WebMagic以及spider-flow这四个关键工具来构建一个强大的Java爬虫系统。以下是对这些工具和技术的深入解析。 首先,...

    httpClient4.1入门教程.pdf

    整体而言,本教程深入浅出地介绍了HttpClient 4.1的入门使用方法。它适合那些希望快速掌握HttpClient基本操作的初学者,同时也为那些计划使用HttpClient开发复杂HTTP客户端应用的开发者提供了参考。通过这篇教程,...

    基于SSM+maven+httpClient+jsoup实现小说网站项目.zip

    基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+...

    httpClient4.5.3+Jsoup1.10.2

    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实现小说网站项目源码.zip 基于SSM+maven+httpClient+jsoup实现...

    httpClient+jsoup 抓取网页数据

    实际操作时,可能还需要考虑登录、分页、动态加载等问题,这些可以通过HttpClient设置cookie和处理重定向,或者使用Jsoup的Jsoup.connect模拟JavaScript执行来解决。 总之,HttpClient和Jsoup是Java开发者进行网页...

    httpclient4.1中文操作说明文档

    本文档作为Apache HttpClient 4.1版本的中文操作指南,旨在为开发者提供详细的使用指导与实践案例,帮助用户更好地理解和应用该库的功能。 #### 第一章:基础 - **执行请求** - **HTTP请求**:介绍如何构建HTTP...

    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 httpclient-4.1-alpha1.jar

    HttpClient&&HtmlParser(Crawler)网络爬虫

    在网络爬虫项目中,HttpClient和HtmlParser常结合使用,HttpClient负责获取网页内容,HtmlParser则负责解析内容并提取有用信息。为了实现更复杂的爬虫功能,如处理JavaScript渲染的页面、模拟登录、反反爬虫策略等,...

    httpClient4.1入门教程.docx

    HttpClient 基本功能的使用 1. **环境准备**:在使用 HttpClient 之前,需要确保已经正确导入了 HttpClient 相关的 jar 包,如 httpclient、httpcore、httpmime 等。 2. **主要类解释**:HttpClient 主要涉及 `...

    httpClient采集jsoup解析

    总的来说,HttpClient与Jsoup的结合使用,为Java开发者提供了一套高效、灵活的数据采集解决方案。通过它们,你可以轻松地从网页中获取并处理所需信息,为数据分析、信息监控或其他相关任务提供支持。但同时也需要...

    httpclient-4.1.jar

    httpclient-4.1.jar

    HttpClient4.1.2 & HtmlUnit2.9 处理文件下载

    在实际使用HttpClient和HtmlUnit结合处理文件下载时,开发者通常会先用HttpClient建立与服务器的连接,然后通过HttpClient发送请求到文件的URL。HtmlUnit则可以在JavaScript执行的环境中触发文件下载,或者模拟用户...

    Commons HTTPClient4&#46;X组件应用示例

    ### Commons HTTPClient4.X 组件应用详解 #### 一、引言 ...传统的做法是使用浏览器或者基于JDK提供的`java.net`...对于需要频繁与Web服务器进行交互的应用程序而言,使用HttpClient4组件将极大提高开发效率和应用质量。

Global site tag (gtag.js) - Google Analytics