您的位置:首页 > 游戏 > 游戏 > 淘宝网络营销案例分析_1688货源批发网_广州网站设计建设_网站seo查询站长之家

淘宝网络营销案例分析_1688货源批发网_广州网站设计建设_网站seo查询站长之家

2024/12/25 23:54:45 来源:https://blog.csdn.net/IndexMan/article/details/143381585  浏览:    关键词:淘宝网络营销案例分析_1688货源批发网_广州网站设计建设_网站seo查询站长之家
淘宝网络营销案例分析_1688货源批发网_广州网站设计建设_网站seo查询站长之家

什么是Jsoup

Jsoup 是一个开源 Java 库,它提供了一个直观的 API,可使用 DOM API 方法获取 URL 并提取和处理数据。 作为一个多功能库,Jsoup 支持 CSS 选择器和 XPath,它们是识别和选择 HTML 文档中元素的强大选项。 此外,Jsoup 还能处理畸形的 HTML,如包含无效或不完整标记的 HTML,这使它成为从各类网站中提取数据的重要工具。

使用 Jsoup 解析 HTML

要使用 Jsoup 解析 HTML,请将获取的数据加载到 Document 对象中,该对象将 HTML 呈现在 DOM 树中。然后,浏览文档并选择所需的信息。以下是关于如何在 Java 中解析 HTML 的 Jsoup 分步教程。作为练习,您将从豆瓣电影榜单站点中提取数据。

步骤1:添加jsoup依赖

<dependency><!-- jsoup HTML parser library @ https://jsoup.org/ --><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.17.2</version>
</dependency>

步骤2:获取html

在这里插入图片描述

要提取您将在本教程中解析的 HTML 源文件,请使用内置 Java 模块 HttpClient 向目标网页 (https://movie.douban.com/chart) 发出 GET 请求并检索响应。利用hutool的HttpUtil工具类可以一行代码搞定!
添加hutool依赖:

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.21</version></dependency>
HttpUtil.get("https://movie.douban.com/chart");

步骤3:提取电影数据

Jsoup 允许您使用 CSS 选择器或 XPath 选择元素。虽然 CSS 选择器通常因其易用性和更简单的语法而受到青睐,但您的选择取决于项目的需求和用例。
本文演示CSS选择器方式提取:
在这里插入图片描述

  • 提取第一个电影标题
 Document doc = Jsoup.parse(t);Element titleElement = doc.select("div.pl2 > a").first();String productTitle = titleElement.text();System.out.println("Product Title: " + productTitle);

输出:Product Title: 某种物质 / 完美物质(港) / 惧裂(台)

步骤4:提取电影列表数据

对步骤3进行扩展,将第一页的电影数据信息全部提取出来,组成一个电影数据列表。

  • 创建电影实体类
@Data
public class Movie {private String title;private String url;private String img;private String rating;private String desc;private String ratingCount;
}
  • 完善解析代码
List<Movie> movieList = new ArrayList<>();doc.select("tr.item").forEach(e -> {Movie movie = new Movie();Elements tds = e.select("td");if(tds.size() == 2){Element imgElement = tds.get(0);Element bodyElement = tds.get(1);// 获取链接movie.setUrl(imgElement.select(".nbg").attr("href"));// 获取图片movie.setImg(imgElement.select(".nbg > img").attr("src"));// 获取标题movie.setTitle(bodyElement.select(".pl2 > a").text());// 描述movie.setDesc(bodyElement.select(".pl").text());// 评分movie.setRating(bodyElement.select(".star > span.rating_nums").text());// 打分人数movie.setRatingCount(bodyElement.select(".star > span.pl").text());}movieList.add(movie);});

步骤5:导出电影数据到CSV

添加pom依赖:

<!-- https://mvnrepository.com/artifact/com.opencsv/opencsv -->
<dependency><groupId>com.opencsv</groupId><artifactId>opencsv</artifactId><version>5.9</version>
</dependency>

导出代码:

// 写入csv文件try (CSVWriter csvWriter = new CSVWriter(new FileWriter("d:/tmp/products.csv"))) {// write headerString[] header = {"名称", "详情", "封面", "摘要", "评分", "评论人数"};csvWriter.writeNext(header);// write datafor (Movie movie : movieList) {String[] data = {movie.getTitle(), movie.getUrl(), movie.getImg(), movie.getDesc(), movie.getRating(), movie.getRatingCount()};csvWriter.writeNext(data);}} catch (IOException e) {e.printStackTrace();}
  • 效果展示:
    在这里插入图片描述

觉得有帮助别忘点个赞哈:)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com