Spring Boot 慕课网爬虫

一、项目简介(Demo简介)

  慕课网。。。打了三个字,还是不介绍了避免广告。一个简单爬虫该网站的demo。

  地址:https://www.imooc.com/course/list?c=springboot

二、项目结构

  项目多层架构:common层,controller层,entity层,repository层,由于Demo比较简单就没有细分那么多了(偷懒)。

  

三、项目说明

F12 查看页面html结构,发现如下

本次我只抽取了 课程名称,url,等级,描述四个字段。

  • 数据库,创建imooc_spider数据库,表course。
  • JPA,这里我结合Spring boot JPA,application.yml配置如下。创建对应的CourseEntiy
  • @Entity
    @Table(name = "course")
    public class CourseEntity {
        @Id
        @GeneratedValue
        private Integer id;
        private String name;
        private String url;
        private String desc;
        private String level;
    }
    

      

  • 解析html。http请求这里就不介绍了,重点就是解析html,采用Jsoup,当然也可以使用正则,但是我觉得Jsoup比较直观方便操作。解析的代码要结合页面上的html。
  • div[class=clearfix] 代表页面 <div class="clearfix">
    如果直接<div class="clearfix"> 会提示找不到改节点
  • package com.jet.imoocspider.common;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.jet.imoocspider.entity.CourseEntity;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    public class HtmlParse {
    
        public static List<CourseEntity> getData (String html) throws Exception{
            //获取的数据,存放在集合中
            List<CourseEntity> data = new ArrayList<CourseEntity>();
            //采用Jsoup解析
            Document doc = Jsoup.parse(html);
            //获取html标签中的内容
            Elements elements=doc.select("div[class=clearfix]").select("div[class=course-card-container]").select("a[class=course-card]");
            for (Element ele:elements) {
                String url="https://www.imooc.com".concat(ele.attr("href"));
                String name=ele.select("div[class=courseEntity-card-content]").select("h3[class=courseEntity-card-name]").html();
                Elements elementLevelParent=ele.select("div[class=courseEntity-card-content]").select("div[class=clearfix courseEntity-card-bottom]");
                String level=elementLevelParent.select("div[class=courseEntity-card-info]").tagName("span").first().text();
                String desc=elementLevelParent .select("p[class=courseEntity-card-desc]").text();
    
                CourseEntity courseEntity =new CourseEntity();
                courseEntity.setDesc(desc);
                courseEntity.setUrl(url);
                courseEntity.setName(name);
                courseEntity.setLevel(level);
    
                //将每一个对象的值,保存到List集合中
                data.add(courseEntity);
            }
            //返回数据
            return data;
        }
    }
    
  •  

原文地址:https://www.cnblogs.com/LeeHc/p/9426642.html

时间: 2024-10-08 07:29:00

Spring Boot 慕课网爬虫的相关文章

spring boot教程 网盘下载

教程下载地址:https://u18103887.ctfile.com/fs/18103887-309551343 I. Spring Boot文档1. 关于本文档2. 获取帮助3. 第一步4. 使用Spring Boot5. 了解Spring Boot特性6. 迁移到生产环境7. 高级主题II. 开始8. Spring Boot介绍9. 系统要求9.1. Servlet容器10. Spring Boot安装10.1. 为Java开发者准备的安装指南10.1.1. Maven安装10.1.2.

[web开发] Vue + spring boot + echart 微博爬虫展示平台

1.微博登录 2.爬取数据 3.mysql存储 4.pyechart本地展示 5.用vue搭建网站web展示 1.微博登录 新浪微博的登录不是简单的post就能解决的,他的登录有加密,所以我们要使用一定的解密算法才能正常登录微博,得到我们想要的数据. 先不要慌,第一步当然是import我们需要的库 from urllib import request,parse import http.cookiejar import base64 import json import rsa import b

(转)收集 Spring Boot 相关的学习资料,Spring Cloud点这里 重点推荐:Spring Boot 中文索引

推荐博客 纯洁的微笑-Spring Boot系列文章 林祥纤-从零开始学Spring Boot Mkyong-Spring Boot教程(国外) baeldung-Spring Boot教程(国外) liaokailin的专栏-Spring Boot实战 梁桂钊-Spring Boot 揭秘与实战 系列 catoop的专栏-Spring Boot 学习 简书Spring Boot专题 方志朋-SpringBoot 非官方教程 嘟嘟-Spring-Boot干货系列 小柒-SpringBoot开发案

spring boot学习笔记

spring boot 是什么 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. spring boot采用了“约定优于配置” 的理念,减少了spring繁琐的配置,方便快速搭建应用 spring boot官网:http://projects.spring.io/spring-boot/ maven配置: <parent> <groupId>org.springframework.boot</group

Spring boot入门篇

1. Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid    application  development)成为领导者. 可以 Maven | Gradle | Ant | Starters构建项目,参考:http://start.spring.io/ 可以选择Maven或Gra

Java微服务实践—Spring Boot系列

Java微服务实践-Spring Boot系列网盘地址:https://pan.baidu.com/s/1aMqPO4pXLeXDHvRuze-JWw 密码: j62z备用地址(腾讯微云):https://share.weiyun.com/c74335d7e383158ee3c4aaf193d471ed 密码:r5gqsk 原文地址:http://blog.51cto.com/12218470/2088359

Spring Boot常用配置

概述 本文主要写了下Spring Boot的一些常用配置. Spring Boot基本配置 入口类: Spring Boot通常有一个名为*Application的入口类,入口类里面有一个main方法,这个main方法其实就是一个标准的Java应用的入口方法.在main方法中使用SpringApplication.run(*Application.class, args),启动Spring Boot应用项目. @SpringBootApplication: @SpringBootApplicat

为什么越来越多的开发者选择使用Spring Boot?

一.Web应用开发背景 使用Java做Web应用开发已经有近20年的历史了,从最初的Servlet1.0一步步演化到现在如此多的框架.库以及整个生态系统.经过这么长时间的发展,Java作为一个成熟的语言,也演化出了非常成熟的生态系统,这也是许多公司采用Java作为主流的语言进行服务器端开发的原因,也是为什么Java一直保持着非常活跃的用户群体的原因. 最受Java开发者喜好的框架当属Spring,Spring也成为了在Java EE开发中真正意义上的标准,但是随着新技术的发展,脚本语言大行其道的

Spring Boot 01

Spring Boot  Hello  World: 1 不用模板创建一个maven项目 2 springboot相关依赖: 在spring boot 官网文档 https://docs.spring.io/spring-boot/docs/2.1.9.RELEASE/reference/html/ 找到:https://docs.spring.io/spring-boot/docs/2.1.9.RELEASE/reference/html/getting-started-installing-