分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

Jsoup代码示例、解析网页+提取文本

发布时间:2023-09-06 01:16责任编辑:董明明关键词:暂无标签

使用Jsoup解析HTML

那么我们就必须用到HttpClient先获取到html

同样我们引入HttpClient相关jar包

以及commonIO的jar包

我们把httpClient的基本代码写上,然后解析网页 得到文档对象

我们获取title和制定id的文档对象

代码实例:

package com.zhi.jsoup1;import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;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 Demo {public static void main(String[] args) throws Exception {CloseableHttpClient httpClient=HttpClients.createDefault(); //1、创建实例HttpGet httpGet=new HttpGet("https://home.cnblogs.com/u/mengxinrenyu/"); //2、创建实例httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0");CloseableHttpResponse httpResponse=httpClient.execute(httpGet); //3、执行HttpEntity entity=httpResponse.getEntity(); //4、获取实体String content=EntityUtils.toString(entity, "utf-8"); //5、获取网页内容httpResponse.close();httpClient.close();Document doc=Jsoup.parse(content); // 解析网页 得到文档对象 ???????Elements elements=doc.getElementsByTag("title"); // 获取tag是title的所有DOM元素 ???????Element element=elements.get(0); // 获取第1个元素 ???????String title=element.text(); // 返回元素的文本 ???????System.out.println("标题:"+title); ???????????????element=doc.getElementById("top_left"); // 获取id=top_left的DOM元素 ???????String menu=element.text(); // 返回元素的文本 ???????System.out.println("导航:"+menu);}}

  由于网页我是登陆以后的,所以会出现以下错误

因为请求的是某个登陆账户下的网页,所以网页会提示登录。从没没有相应id的元素,返回NPE。

我们换一个新闻页面试一下

代码示例:

public class Demo {public static void main(String[] args) throws Exception {CloseableHttpClient httpClient=HttpClients.createDefault(); //1、创建实例HttpGet httpGet=new HttpGet("https://news.cnblogs.com/"); //2、创建实例httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0");CloseableHttpResponse httpResponse=httpClient.execute(httpGet); //3、执行HttpEntity entity=httpResponse.getEntity(); //4、获取实体String content=EntityUtils.toString(entity, "utf-8"); //5、获取网页内容httpResponse.close();httpClient.close();Document doc=Jsoup.parse(content); // 解析网页 得到文档对象 ???????Elements elements=doc.getElementsByTag("title"); // 获取tag是title的所有DOM元素 ???????Element element=elements.get(0); // 获取第1个元素 ???????String title=element.text(); // 返回元素的文本 ???????System.out.println("标题:"+title); ???????????????element=doc.getElementById("top_mini_nav_block"); // 获取id=top_left的DOM元素 ???????String menu=element.text(); // 返回元素的文本 ???????System.out.println("导航:"+menu);}}

  运行如图:

Jsoup代码示例、解析网页+提取文本

原文地址:http://www.cnblogs.com/mengxinrenyu/p/7635248.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved