详细的介绍已经有很多前辈总结,引用一下该篇文章:https://blog.csdn.net/zhuwukai/article/details/78644484

  下面是一个代码的示例:

package com.http.client;

import java.io.IOException;

import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnRouteParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;
/**
*
* @author oo
* @date 2018-04-04
*/
public class MyHttpClient {
private static Logger logger = Logger.getLogger(MyHttpClient.class); /**
* 需求:使用httpclient 爬取 网站数据
*
* @param args
*/
public static void main(String[] args) {
// 创建HttpClient 对象
HttpClient hclient = new DefaultHttpClient(); // 设置响应时间 传输源码时间 代理服务器(设置代理服务器的目的是:防止爬数据被封ip)
hclient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 20000)
.setParameter(CoreConnectionPNames.SO_TIMEOUT, 20000)
.setParameter(ConnRouteParams.DEFAULT_PROXY, new HttpHost("111.155.116.237", 8123)); HttpGet hGet = new HttpGet("http://www.itcast.cn/");
String content = "";
try {
// 向网站发送请求,获取网页源码
HttpResponse execute = hclient.execute(hGet);
// EntityUtils工具类把网页实体转换成字符串
content = EntityUtils.toString(execute.getEntity(), "utf-8");
} catch (ClientProtocolException e) {
e.printStackTrace();
logger.error("********ClientProtocolException" + e);
} catch (IOException e) {
e.printStackTrace();
logger.error("********IOException" + e);
} System.out.println(content);
} }

  使用Jsoup进行请求:

package com.http.client;

import java.io.IOException;

import org.apache.log4j.Logger;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; public class MyJsoup {
private static Logger logger = Logger.getLogger(MyJsoup.class); public static void main(String[] args) {
try {
// 使用jsoup 发送请求
Document document = Jsoup.connect("http://www.itcast.cn").get();
// System.out.println(document);
Elements elements = document.getElementsByTag("a");
String val = elements.text();
System.out.println(val); for (Element element : elements) {
System.out.println(element.text()+":"+element.attr("href"));
}
} catch (IOException e) {
e.printStackTrace();
logger.error("***********IOException: 连接失败" + e);
}
} }

  HttpClient 结合Jsoup:

 package com.http.client;

 import java.io.IOException;

 import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; public class HttpCLientAndJsoup { public static void main(String[] args) throws ClientProtocolException, IOException {
// 创建HttpClient对象
HttpClient hClient = new DefaultHttpClient();
// 爬虫URL大部分都是get请求,创建get请求对象
HttpGet hget = new HttpGet("http://www.itcast.cn/");
// 向网站发送请求,获取网页源码
HttpResponse response = hClient.execute(hget);
// EntityUtils工具类把网页实体转换成字符串
String content = EntityUtils.toString(response.getEntity(), "utf-8");
// Jsoup负责解析网页
Document doc = Jsoup.parse(content);
// 使用元素选择器选择网页内容
Elements elements = doc.select("div.salary_con li");
// System.out.println(elements.text());
for (Element element : elements) {
String text = element.text();
System.out.println(text);
} } }

HttpClient&Jsoup爬虫的简单应用的更多相关文章

  1. 【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo

    简单记录 - Jsoup爬虫入门实战 数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫! 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 我们经常需要分析HTML网 ...

  2. jsoup爬虫简书首页数据做个小Demo

    代码地址如下:http://www.demodashi.com/demo/11643.html 昨天LZ去面试,遇到一个大牛,被血虐一番,发现自己基础还是很薄弱,对java一些原理掌握的还是不够稳固, ...

  3. httpclient+Jsoup总结

    Jsoup.parse解析HTML字符串,如Jsoup.parse("<html><head><title>Firstparse</title> ...

  4. php面试题7(1、unset变量是删除栈变量,并不删除堆变量)(2、php爬虫特别简单: 可以file_get_contents和直接fopen)

    php面试题7(1.unset变量是删除栈变量,并不删除堆变量)(2.php爬虫特别简单: 可以file_get_contents和直接fopen) 一.总结 1.unset变量是删除栈变量,并不删除 ...

  5. 初学Python之爬虫的简单入门

    初学Python之爬虫的简单入门 一.什么是爬虫? 1.简单介绍爬虫   爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等. 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的 ...

  6. (java)Jsoup爬虫学习--获取智联招聘(老网站)的全国java职位信息,爬取10页

    Jsoup爬虫学习--获取智联招聘(老网站)的全国java职位信息,爬取10页,输出 职位名称*****公司名称*****职位月薪*****工作地点*****发布日期 import java.io.I ...

  7. (java)Jsoup爬虫学习--获取网页所有的图片,链接和其他信息,并检查url和文本信息

    Jsoup爬虫学习--获取网页所有的图片,链接和其他信息,并检查url和文本信息 此例将页面图片和url全部输出,重点不太明确,可根据自己的需要输出和截取: import org.jsoup.Jsou ...

  8. Python爬虫的简单入门(一)

    Python爬虫的简单入门(一) 简介 这一系列教学是基于Python的爬虫教学在此之前请确保你的电脑已经成功安装了Python(本教程使用的是Python3).爬虫想要学的精通是有点难度的,尤其是遇 ...

  9. python爬虫:爬虫的简单介绍及requests模块的简单使用

    python爬虫:爬虫的简单介绍及requests模块的简单使用 一点点的建议: (学习爬虫前建议先去了解一下前端的知识,不要求很熟悉,差不多入门即可学习爬虫,如果有不了解的,我也会补充个一些小知识. ...

随机推荐

  1. mxnet 神经网络训练和预测

    https://mxnet.incubator.apache.org/tutorials/basic/module.html import logging import random logging. ...

  2. 支持向量机通俗导论(理解SVM的三层境界)[转]

    作者:July .致谢:pluskid.白石.JerryLead.说明:本文最初写于2012年6月,而后不断反反复复修改&优化,修改次数达上百次,最后修改于2016年11月.声明:本文于201 ...

  3. Tag It 一款 Jquery控件,当你在文本框中输入逗号时,自动帮你分隔开相关内容

    Demo地址:http://webspirited.com/tagit/ 使用方法: 除了JQuery脚本外,下面的脚本也是必须的,这些脚本你都可以去GitHub下载:https://github.c ...

  4. STM32平台SD卡的FatFS文件系统开发

    STM32平台SD卡的FatFS文件系统开发 系统平台: STM32系列的STM32F103ZE SPI方式与SD卡通信 SD上移植FatFS系统 1 FatFS文件系统 1.1 FatFS简介 Fa ...

  5. AD9516锁相环功能外接环路滤波器的设计与分析

  6. Linq不分组求多列的和

    我们需要写Linq查询语句,使用let来创建一个新的变量 Let 关键字 “let”关键字在查询语法中很有用.它会投影一个新的范围变量,允许重新使用表达式并使查询更具可读性. 例如: 这里需要写,两遍 ...

  7. 课时44.表单标签-input(掌握)

    1.什么是表单? 表单是专门用收集用户信息的 2.什么是表单元素? 2.1什么是元素? 在HTML中,标签/标记/元素都是指HTML中的标签 例如: <a>a标签/a标记/a元素 表单元素 ...

  8. Nlog日志出坑合集

    .net core框架下nlog不记录: 1.安装NLog.Web.AspNetCore 2.在Startup.cs文件的方法public void Configure(IApplicationBui ...

  9. Knowledge Point 20180303 详解main函数

    学习Java的朋友想来都是从HelloWorld学起的,那么想来都对main函数不陌生了,但是main函数究竟是怎么回事呢?main函数中的参数是做什么的呢?main函数为什么能作为程序的入口呢?可不 ...

  10. trunc(sysdate)的含义是什么

    1.ORACLE中TRUNC是截取的函数