Java爬虫项目实战案例四之Jsoup使用
2023-09-14 09:13:18 时间
Java爬虫项目实战案例四之 Jsoup
使用
1. Jsoup
简介
Jsoup
是一款java的HTML解析器,可直接解析某个URL地址,HTML文本内容。它提供了一套非常简便的API,可通过DOM,CSS以及类似jQuery的操作方法来取出数据和操作数据。
在爬取到网页之后,就需要使用Jsoup
进行网页的解析。
2. 代码
public static void test3() throws IOException{
CloseableHttpClient httpClient = HttpClients.createDefault();//创建httpClient实例
HttpGet httpGet = new HttpGet("https://www.cnblogs.com/"); //创建httpGet实例
HttpHost proxy = new HttpHost("114.235.22.147", 9000);
RequestConfig config = RequestConfig
.custom()
.setProxy(proxy)
.setConnectTimeout(10000)//连接超时
.setSocketTimeout(10000)//读取超时
.build();
httpGet.setHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64; rv:63.0) Gecko/20100101 Firefox/63.0");
CloseableHttpResponse response = httpClient.execute(httpGet);//指向http get请求
HttpEntity entity = response.getEntity();//获取返回实体
//System.out.println("网页内容:"+ EntityUtils.toString(entity,"utf-8"));//获取网页内容
System.out.println("Content-Type :"+entity.getContentType());//获取内容类型
System.out.println("Status : "+response.getStatusLine());//判断响应状态
String content = EntityUtils.toString(entity);
//way 1:
Document docment = Jsoup.parse(content);
Elements elements = docment.getElementsByTag("title");
Element speciEle = elements.get(0);
String title = speciEle.text();
System.out.println("网页标题是:"+title);
//way 2
Element site_nav_top = docment.getElementById("site_nav_top");
String slogan = site_nav_top.text();
System.out.println("slogan :" + slogan);
response.close();
httpClient.close();
}
3.执行结果
4.代码详解
- 获取信息方式1
//way 1:
Document docment = Jsoup.parse(content);
Elements elements = docment.getElementsByTag("title");
Element speciEle = elements.get(0);
String title = speciEle.text();
System.out.println("网页标题是:"+title);
-
content是上文的entity得到
-
通过Jsoup解析content,得到一个Document对象
-
每个Document对象中包涵很多元素,但是我们只需要Tag = 'title’的集合,注意这里是集合。所以如果需要某个具体的值,就需要指定集合中元素的下标,这里取下标为0 的Element。【这时取到的就是Element,而是不Elements】
-
然后通过取出来的Element对象获取其中的文本。最后输出
-
获取信息方式2
//way 2
Element site_nav_top = docment.getElementById("site_nav_top");
String slogan = site_nav_top.text();
System.out.println("slogan :" + slogan);
- 获取content,获取document同方式1
- 通过document对象,找到其中id ='site_nav_top’的内容,注意,因为在一个html页面中,id具有唯一性,所以这里找到的值就是唯一值。
- 输出即可
相关文章
- 《Java 7并发编程实战手册》第五章Fork/Join框架
- 干货--JMS(java消息服务)整合Spring项目案例
- MySQL_(Java)使用preparestatement解决SQL注入的问题
- java实现人脸识别(使用百度云V3版本)
- java语音播报案例
- java实现遍历树形菜单方法——OpenSessionView实现
- Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
- Java反射异常:java.lang.NoSuchFieldException
- Java实现 LeetCode 678 有效的括号字符串(暴力+思路转换)
- Java实现 LeetCode 423 从英文中重建数字
- Java实现第九届蓝桥杯小朋友崇拜圈
- Java实现无向图的欧拉回路判断问题
- Java实现 蓝桥杯VIP 算法提高 3-1课后习题2
- Java实现 蓝桥杯VIP 算法训练 学做菜
- Java实现蓝桥杯历届试题买不到的数目
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- 【JAVA】毕向东Java基础视频教程-笔记
- 【JAVA】Java循环语句中的continue跳转进入下一次循环是否判断循环条件
- Java案例-用户注册邮箱绑定激活功能实现
- Java正则表达式代码案例
- Java超类-java.lang.object
- Java之生产者消费者模式
- thrift和java交互案例和结果
- 【java】Java生成微信小程序二维码
- Java通过PDF模板导出数据 adobe acrobat的PDF编辑器 itextpdf java导出文件输出流
- java-mybaits-00502-案例-映射分析-一对一、一对多、多对多
- java-mybaits-00501-案例-映射分析-订单商品数据模型
- java.lang.OutOfMemoryError: Java heap space
- 解决办法:nohup: failed to run command ‘java‘: No such file or directory