SpringBoot中使用Jsoup爬取网站数据的方法

 更新时间:2020年06月08日 15:10:07   作者:刘桐ssss  
这篇文章主要介绍了SpringBoot中使用Jsoup爬取网站数据的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

爬取数据

导入jar包

 <properties>
    <java.version>1.8</java.version>
    <elasticsearch.version>7.6.1</elasticsearch.version>
  </properties>
 
  <dependencies>
    <dependency>
      <groupId>org.jsoup</groupId>
      <artifactId>jsoup</artifactId>
      <version>1.10.2</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.62</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
 
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <scope>runtime</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

新建实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Content {
  private String title;
  private String img;
  private String price;
}

编写爬虫工具类

public class HtmlParseUtil {
  public static void main(String[] args) throws Exception {
    new HtmlParseUtil().parseDDJJ("包").forEach(System.out::println);
  }
 
  public List<Content> parseDDJJ(String keywords) throws Exception {
    //爬取url地址
    String url = "https://search.xxxx.com/Search?keyword="+keywords;
    //解析网页,30s内未爬取成功,打印错误
    Document document = Jsoup.parse(new URL(url),30000);
    //获取每一本书籍的id
    Element element = document.getElementById("DJ_goodsList");
    //获取所有的li标签
    Elements elements = element.getElementsByTag("li");
 
    ArrayList<Content> goodsList = new ArrayList<>();
 
    //遍历li标签的内容
    for (Element el : elements) {
      String img = el.getElementsByTag("img").eq(0).attr("src");
      String price = el.getElementsByClass("p-price").eq(0).text();
      String title = el.getElementsByClass("p-name").eq(0).text();
 
      Content content = new Content();
      content.setTitle(title);
      content.setPrice(price);
      content.setImg(img);
      goodsList.add(content);
    }
    return goodsList;
  }
}

可以看到内容、图片、价格系数爬取

到此这篇关于SpringBoot中使用Jsoup爬取网站数据的方法的文章就介绍到这了,更多相关SpringBoot Jsoup爬取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 探讨Java中函数是值传递还是引用传递问题

    探讨Java中函数是值传递还是引用传递问题

    这篇文章主要介绍了探讨Java中函数是值传递还是引用传递问题,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • SpringBoot集成Druid的实例代码

    SpringBoot集成Druid的实例代码

    这篇文章主要介绍了SpringBoot集成Druid的实例代码,有依赖和配置相关内容,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • Java方法能定义多少个参数你知道吗

    Java方法能定义多少个参数你知道吗

    这篇文章主要给大家介绍了关于Java方法能定义多少个参数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • Java 8中如何获取参数名称的方法示例

    Java 8中如何获取参数名称的方法示例

    这篇文章主要给大家介绍了在Java 8中如何获取参数名称的方法,文中给出了详细的介绍和方法示例,相信对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友可以参考学习,下面来一起看看吧。
    2017-01-01
  • Spring的跨域的几个方案

    Spring的跨域的几个方案

    这篇文章主要介绍了Spring的跨域的几个方案,CrossOrigin、addCorsMappings、CorsFIlter等方案,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-02-02
  • Spring框架开发scope作用域分析总结

    Spring框架开发scope作用域分析总结

    这篇文章主要介绍了Spring框架开发中scope作用域的分析总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2021-09-09
  • java ThreadPool线程池的使用,线程池工具类用法说明

    java ThreadPool线程池的使用,线程池工具类用法说明

    这篇文章主要介绍了java ThreadPool线程池的使用,线程池工具类用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • spring-cloud-gateway降级的实现

    spring-cloud-gateway降级的实现

    这篇文章主要介绍了spring-cloud-gateway降级的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • java中的类型擦除type erasure示例详解

    java中的类型擦除type erasure示例详解

    泛型是java从JDK 5开始引入的新特性,泛型的引入可以让我们在代码编译的时候就强制检查传入的类型,从而提升了程序的健壮度,泛型可以用在类和接口上,在集合类中非常常见,本文将会讲解泛型导致的类型擦除
    2023-09-09
  • idea创建springboot项目,Application.java不能运行问题及解决

    idea创建springboot项目,Application.java不能运行问题及解决

    这篇文章主要介绍了idea创建springboot项目,Application.java不能运行问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论