当前位置: 首页 > 编程笔记 >

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

景志
2023-03-14
本文向大家介绍SpringBoot中使用Jsoup爬取网站数据的方法,包括了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爬取内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 尝试使用Jsoup而不是网站API从网站上练习和获取信息。我的代码没有错误,但文本字段没有更改。它只是给我一个空白。我如何从网站上获取信息?我正试图获取主要新闻,以便在我的网站上发布。 我的代码:

  • 完全新的Java和J汤。我试图创建一个简单的程序,刮网络,给我Java股市的数据。我想从道琼斯股票开始,让它打印出52周的区间数据。它转到http://finance.yahoo.com/quote/AAPL?ltr=1,查看左下表(从上一次收盘价开始),然后下到第5个索引,从那里获取文本值。我得到的错误: 线程“main”组织中出现异常。jsoup。选择选择器$SelectorParseExce

  • 我刚开始使用JSoup从网站获取小文本,但我不知道如何从“title”类中获取“BONES”一词: 这是我的代码:

  • 问题内容: 在此网站上,您可以输入您的学生卡号,然后显示该卡上还剩多少钱。我想使用JSOUP获得信息。这是我当前的代码,但是不起作用, 我没有太多经验,所以我不知道在哪里寻找问题。一些想法: 我应该使用还是? 在使用chrome devoloper工具时,发布数据是我使用功能发送的所有数据。但是,如果发送时出现错误,为什么? 我应该发送解密或加密的数据吗?(两者均在chrome devoloper

  • 问题内容: 我正在尝试将数据发布到网站中,以使用Jsoup登录该网站,但是它不起作用? 我正在尝试代码 这是在pagesource中提供正常的登录页面 我也尝试过代码 这也是在pagesource中再次提供正常的登录页面。 关于相同的任何建议将不胜感激! 谢谢.... 问题答案: 我将通过举例来回答您的问题。假设您要登录到facebook。 然后,除了用户名和密码外,还有许多其他参数也通过请求传递

  • 本文向大家介绍如何爬取通过ajax加载数据的网站,包括了如何爬取通过ajax加载数据的网站的使用技巧和注意事项,需要的朋友参考一下 目前很多网站都使用ajax技术动态加载数据,和常规的网站不一样,数据时动态加载的,如果我们使用常规的方法爬取网页,得到的只是一堆html代码,没有任何的数据。 请看下面的代码: 上面的代码是爬取今日头条的一个网页,并打印出get方法返回的文本内容如下图所示,值现在一堆