`
xpopi
  • 浏览: 63291 次
  • 性别: 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、xstream-1.3.1、slf4j-log4j12-1.5.10、slf4j-api-1.5.10、log4j-1.2.15、json-lib-2.2.3-jdk13、gson-2.2.4、ezmorph-1.0.6、dom4j-1.6.1、commons-logging-1.0.4、commons-lang-2.3、commons-...

    手把手从零搭建新冠疫情防控指挥作战平台视频教程

    3,综合运用HttpClient+Jsoup+Kafka+SparkStreaming+StructuredStreaming+SpringBoot+Echarts等多种实用技术 适用人群 1、对大数据感兴趣的在校生及应届毕业生。 2、对目前职业有进一步提升要求,希望从事大数据...

    java爬虫教程及工具应用

    可以使用Apache HttpClient或OkHttp等库来进行网络请求处理。 - **Apache HttpClient**:提供了一个高级API来发送HTTP请求,可以灵活配置请求参数。 - **OkHttp**:一个高效的HTTP客户端库,支持同步和异步请求,...

    JAVA开发一个简单的爬虫的思路1.doc

    - 安装必要的库,如Apache HttpClient库(文中使用3.1版本,但推荐使用4.1或更高版本)用于发送HTTP请求,以及Apache POI库用于处理Excel文件。 2. **创建项目结构**: - 在Eclipse中新建一个Java工程,并创建一...

    Java爬虫程序

    在你提供的压缩包"Myspider4.1"中,很可能包含了上述技术的实现,以及详细的使用方法和示例代码。通过学习和分析这些代码,你可以深入了解Java爬虫的工作原理,并且能动手编写自己的爬虫程序。在实际应用中,还需要...

    基于爬虫的美食推荐小程序设计与实现.docx

    **4.1 开发环境** - 小程序端开发环境:微信开发者工具。 - 后台开发环境:Java开发环境,包括JDK、IDEA等。 - 数据库:MySQL。 **4.2 网络爬虫获取数据** - **数据获取**:利用网络爬虫技术从各大美食网站上获取...

Global site tag (gtag.js) - Google Analytics