当前位置: 首页 > news >正文

做网站的开题报告外贸平台app

做网站的开题报告,外贸平台app,做ppt找素材的网站,曲阳网站建设在哪1.什么是jsoup jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据,可操作 HTML 元素、属性、文本。 JSo…

1.什么是jsoup

jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据,可操作 HTML 元素、属性、文本。  

JSoup 功能

jsoup 实现 WHATWG HTML5 规范,并将 HTML 解析为与现代浏览器相同的 DOM。

  • 从 URL,文件或字符串中提取并解析 HTML。
  • 查找和提取数据,使用 DOM 遍历或 CSS 选择器。
  • 操纵 HTML 元素,属性和文本。
  • 根据安全的白名单清理用户提交的内容,以防止 XSS 攻击。
  • 输出整洁的 HTML。

JSoup 主要类

大多数情况下,下面给出 3 个类是我们需要重点了解的。

Jsoup 类

Jsoup 类是任何 Jsoup 程序的入口点,并将提供从各种来源加载和解析 HTML 文档的方法。 Jsoup 类的一些重要方法如下:

方法描述
static Connection connect(String url)创建并返回 URL 的连接。
static Document parse(File in, String charsetName)将指定的字符集文件解析成文档。
static Document parse(String html)将给定的 html 代码解析成文档。
static String clean(String bodyHtml, Whitelist whitelist)从输入 HTML 返回安全的 HTML,通过解析输入 HTML 并通过允许的标签和属性的白名单进行过滤。

Jsoup 类的其他重要方法可以参见 - Jsoup: jsoup HTML Parser Documentation

Document 类

该类表示通过 Jsoup 库加载 HTML 文档。可以使用此类执行适用于整个 HTML 文档的操作。 Element 类的重要方法可以参见 - Document: jsoup HTML Parser Documentation 。

Element 类

HTML 元素是由标签名称,属性和子节点组成。 使用 Element 类,您可以提取数据,遍历节点和操作 HTML。 Element 类的重要方法可参见 - Element: jsoup HTML Parser Documentation 。

2.代码工程

实验目的

实现解析liuhaihua.cn首页list

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springboot-demo</artifactId><groupId>com.et</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>jsoup</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.12.1</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId></dependency></dependencies>
</project>

controller

package com.et.jsoup;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;
import java.util.Map;@RestController
public class HelloWorldController {@RequestMapping("/hello")public Map<String, Object> showHelloWorld(){Map<String, Object> map = new HashMap<>();map =JsoupUtil.parseHtml("http://www.liuhaihua.cn/");map.put("msg", "HelloWorld");return map;}
}

工具类

package com.et.jsoup;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.HttpClientUtils;
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;/*** @author liuhaihua* @version 1.0* @ClassName JsoupUtil* @Description todo* @date 2024/06/24/ 9:16*/public class JsoupUtil {public static Map<String ,Object> parseHtml(String url){Map<String,Object> map = new HashMap<>();//1.生成httpclient,相当于该打开一个浏览器CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;//2.创建get请求,相当于在浏览器地址栏输入 网址HttpGet request = new HttpGet(url);//设置请求头,将爬虫伪装成浏览器request.setHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36");
//        HttpHost proxy = new HttpHost("60.13.42.232", 9999);
//        RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
//        request.setConfig(config);try {//3.执行get请求,相当于在输入地址栏后敲回车键response = httpClient.execute(request);//4.判断响应状态为200,进行处理if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {//5.获取响应内容HttpEntity httpEntity = response.getEntity();String html = EntityUtils.toString(httpEntity, "utf-8");System.out.println(html);/*** 下面是Jsoup展现自我的平台*///6.Jsoup解析htmlDocument document = Jsoup.parse(html);//像js一样,通过标签获取titleSystem.out.println(document.getElementsByTag("title").first());Elements blogmain = document.getElementsByClass("col-sm-8 blog-main");//像js一样,通过class 获取列表下的所有博客Elements postItems =  blogmain.first().getElementsByClass("fade-in");//循环处理每篇博客List<Map>  list =  new ArrayList<>();for (Element postItem : postItems) {Map<String,Object> row = new HashMap<>();//像jquery选择器一样,获取文章标题元素Elements titleEle = postItem.select(".entry-title a");System.out.println("文章标题:" + titleEle.text());;row.put("title",titleEle.text());System.out.println("文章地址:" + titleEle.attr("href"));row.put("href",titleEle.attr("href"));//像jquery选择器一样,获取文章作者元素Elements footEle = postItem.select(".archive-content");System.out.println("文章概要:" + footEle.text());;row.put("summary",footEle.text());Elements view = postItem.select(".views");System.out.println( view.text());row.put("views",view.text());System.out.println("*********************************");list.add(row);}map.put("data",list);} else {//如果返回状态不是200,比如404(页面不存在)等,根据情况做处理,这里略System.out.println("返回状态不是200");System.out.println(EntityUtils.toString(response.getEntity(), "utf-8"));}} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {//6.关闭HttpClientUtils.closeQuietly(response);HttpClientUtils.closeQuietly(httpClient);}return  map;}public static void main(String[] args) {parseHtml("http://www.liuhaihua.cn/");}}

DemoApplication.java

package com.et.jsoup;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}

以上只是一些关键代码,所有代码请参见下面代码仓库

代码仓库

  • GitHub - Harries/springboot-demo: a simple springboot demo with some components for example: redis,solr,rockmq and so on.

3.测试

  • 启动spring boot应用
  • 访问http://127.0.0.1:8088/hello,返回解析结果

4.引用

  • 官网:jsoup: Java HTML parser, built for HTML editing, cleaning, scraping, and XSS safety
  • GitHub:GitHub - jhy/jsoup: jsoup: the Java HTML parser, built for HTML editing, cleaning, scraping, and XSS safety.
  • Spring Boot集成jsoup实现html解析 | Harries Blog™

   

http://www.tj-hxxt.cn/news/94699.html

相关文章:

  • 有哪个网站教人做美食网站设计模板
  • 淄博网站建设优化seo点点站长工具
  • 做爰免费视频网站如何搭建网站
  • ppt网站超链接怎么做平台推广精准客源
  • 网站整合建设方案网上国网app推广
  • 黄骅市网站建设网站设计与制作毕业论文范文
  • 页面设计常用的主题颜色考拉seo
  • 站内推广策略seo收费标准
  • web前端实战项目源码seo zac
  • 专业网站包就业的培训学校
  • 如何申请cn域名做网站公司网站建设价格
  • 官方网站制作公司兰州怎么提高网站的排名
  • 武汉seo主管seo研究中心怎么了
  • 建设网站的协议范本泰安网络推广培训
  • 长春网页建站模板辽阳网站seo
  • 广州市天河区建设局网站什么叫seo网络推广
  • 专做充电器的网站成功的网络营销案例及分析
  • 门头沟富阳网站建设seo入门培训班
  • 东莞 企业网站建设佛山网站建设技术托管
  • 品牌网站建设只詢大蝌蚪广告推广方案怎么写
  • 中英文切换的网站怎么做的百度关键词排名代发
  • 个人虚拟机做网站优化大师如何删掉多余的学生
  • 做it人经常逛的网站百度电脑版网址
  • 网站二维码可以做长按识别吗东莞做好网络推广
  • 哈尔滨手机网站制作人民日报官网
  • 网上接单做衣服哪个网站新闻联播直播 今天
  • 做吉祥物设计看什么网站成人教育培训机构排名
  • 公司门面网站设计世界大学排名
  • 西安建设厅官方网站实时积分榜
  • 智能网站建设推荐培训计划模板