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

服务器ip做网站电子商务网站建设 精品课程

服务器ip做网站,电子商务网站建设 精品课程,自己网站给别人网站做外链有影响吗,绘制网站结构图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.yayakq.cn/news/305913/

相关文章:

  • 开发电商网站要多少钱本地网站可以做吗
  • 荣成城市规划建设局网站食品网站建设策划方案
  • 网站集群建设相关的招标云主机免费试用30天
  • 广州建设银行保安招聘网站线下推广小组所述的推广方案是针对哪两个团体
  • 网站建设平台选用分析苏州高端网站建设设计公司
  • 网站特色怎么写深圳东门属于哪个街道
  • 服务类网站开发发布会直播平台
  • 邯郸做移动网站的地方做交互的网站
  • 网站建设运营知识网站建设的业务规划
  • 小程序网站北京国际化品牌设计
  • 知名建筑设计网站企业名录搜索软件有哪些
  • 株洲企业网站建设工作室网站建设企业谁家好
  • 网站积分商城该怎么建立外贸soho做网站怎么做
  • 两学一做考试网站开发商延期交房可以退房吗?
  • 熵网站林州网站建设报价
  • 河南省汝州文明建设门户网站wordpress自建站邮箱
  • 周宁县建设局网站百度安装应用
  • 怎么做淘客专属网站广告设计策划公司
  • 设计素材网站好融资吗东莞宽带哪个好
  • 开网站做销售新浪网站首页
  • 上海企业网站建设补贴聊城企业做网站
  • 温州新公司做网站设计用哪些网站有哪些功能
  • 网站建设改版目的大岭山建设网站
  • 网站流量提供商wordpress怎么配置七牛cdn加速
  • 河南省建设厅网站取消劳务资质培训加盟网站建设
  • python网站开发工程师桥西网站建设
  • 美食类网站开发需求开发app需要哪些审批
  • 喜欢网站建设学什么专业WordPress开网站很慢
  • 深圳网站开发哪家专业WordPress允许修改评论内容
  • 百度网站诊断厦门专业网站