HttpClient&Jsoup爬虫的简单应用
详细的介绍已经有很多前辈总结,引用一下该篇文章: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爬虫的简单应用的更多相关文章
- 【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo
简单记录 - Jsoup爬虫入门实战 数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫! 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 我们经常需要分析HTML网 ...
- jsoup爬虫简书首页数据做个小Demo
代码地址如下:http://www.demodashi.com/demo/11643.html 昨天LZ去面试,遇到一个大牛,被血虐一番,发现自己基础还是很薄弱,对java一些原理掌握的还是不够稳固, ...
- httpclient+Jsoup总结
Jsoup.parse解析HTML字符串,如Jsoup.parse("<html><head><title>Firstparse</title> ...
- php面试题7(1、unset变量是删除栈变量,并不删除堆变量)(2、php爬虫特别简单: 可以file_get_contents和直接fopen)
php面试题7(1.unset变量是删除栈变量,并不删除堆变量)(2.php爬虫特别简单: 可以file_get_contents和直接fopen) 一.总结 1.unset变量是删除栈变量,并不删除 ...
- 初学Python之爬虫的简单入门
初学Python之爬虫的简单入门 一.什么是爬虫? 1.简单介绍爬虫 爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等. 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的 ...
- (java)Jsoup爬虫学习--获取智联招聘(老网站)的全国java职位信息,爬取10页
Jsoup爬虫学习--获取智联招聘(老网站)的全国java职位信息,爬取10页,输出 职位名称*****公司名称*****职位月薪*****工作地点*****发布日期 import java.io.I ...
- (java)Jsoup爬虫学习--获取网页所有的图片,链接和其他信息,并检查url和文本信息
Jsoup爬虫学习--获取网页所有的图片,链接和其他信息,并检查url和文本信息 此例将页面图片和url全部输出,重点不太明确,可根据自己的需要输出和截取: import org.jsoup.Jsou ...
- Python爬虫的简单入门(一)
Python爬虫的简单入门(一) 简介 这一系列教学是基于Python的爬虫教学在此之前请确保你的电脑已经成功安装了Python(本教程使用的是Python3).爬虫想要学的精通是有点难度的,尤其是遇 ...
- python爬虫:爬虫的简单介绍及requests模块的简单使用
python爬虫:爬虫的简单介绍及requests模块的简单使用 一点点的建议: (学习爬虫前建议先去了解一下前端的知识,不要求很熟悉,差不多入门即可学习爬虫,如果有不了解的,我也会补充个一些小知识. ...
随机推荐
- angular里forRoot的作用
模块A是这样定义的 @NgModule({ providers: [AService], declarations: [ TitleComponent ], exports: [ TitleCompo ...
- 【转】python通过文件头判断文件类型
刚刚看到一个好玩的程序,拉过来.原文地址:https://www.ttlsa.com/python/determine-file-type-by-the-file-header/ 侵权删. ===== ...
- ThinkPHP中前台输出变量
1. foreach <foreach name="list" item="vo" > {$key}|{$vo.id}:{$vo.name} & ...
- PHP基础系列(二) PHP数组相关的函数分类整理
之前写过一篇介绍 PHP字符串函数 的博文,这里写第二篇,本文主要介绍PHP 数组相关的函数: 一.检查数组中是否存在 array_key_exists — 检查给定的键名或索引是否存在于数组中 ar ...
- java _this关键字的用法
1:This关键字可以用于从一个构造方法调用另一个构造方法,可以用于避免重复代码 2:this的第二个用于this.xxx表示成员变量,成员变量的作用范围是 类 避免产生歧义 package c ...
- 【题解】洛谷P1514 [NOIP2010TG] 引水入城(DFS+DP)
次元传送门:洛谷P1514 思路 可以证明如果有解 那么每个蓄水池可以覆盖到的干旱区必定是线段 证明: 举个栗子 8 9 8 7 9 7 6 9 6 明显到不了中间的点 如果不是连续的线段 中间肯定有 ...
- CodeForces - 607B (记忆化搜索)
传送门: http://codeforces.com/problemset/problem/607/B Genos recently installed the game Zuma on his ph ...
- TCP-IP and Advanced Topics 课程总结与报告
课程总结 学习了四周十六课的课程,对每一课的知识点进行总结梳理,作出一个树状的知识网络图. 本课程虽然在深度上有所欠缺,但却更有利于结构上的梳理,加深总体上对网络的理解. 本课程从Internet出发 ...
- Xcode菜单功能中文翻译
Xcode菜单功能中文翻译 File 文件 Edit 编辑 View 视图 Navigate 导航 Editor 编辑 Product 产品 Window 窗口 Help 帮助 File 文件 ...
- 【Node.Js】npm国内被墙的解决方法
移动网就是坑,有VPN也上不去,真操蛋~先吐槽一下@中国移动 折腾了一晚上,总是报连接错误,导致我npm安装不上,查了半天资料,找到个靠谱的,粘贴过来备用. 原文地址:http://snoopyxdy ...