我们都知道可以用爬虫来找寻一些想要的数据,除了可以使用python进行操作,我们最近学习的java同样也支持爬虫的运行,本篇小编就教大家用java爬虫来进行网页的解析,具体内容请往下看:

1、springboot项目,引入jsoup

org.jsoup

jsoup

1.10.2

2、准备解析对象Content.java

package com.asia.pojo;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

@Data

@NoArgsConstructor

@AllArgsConstructor

public class Content {

private String title;

private String img;

private String price;

}

3、爬虫工具类HtmlParseUtil.java

package com.asia.utils;

import java.net.URL;

import java.net.URLDecoder;

import java.util.ArrayList;

import java.util.List;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

import com.asia.pojo.Content;

public class HtmlParseUtil {

public static void main(String[] args) throws Exception {

new HtmlParseUtil().parseJD("西瓜").forEach(System.out::println);

}

public List parseJD(String keywords) throws Exception {

String url = "https://search.jd.com/Search?keyword=" + URLDecoder.decode(keywords, "GBK");

// 解析网页.(Jsoup返回Document就是浏览器的Document对象)

Document document = Jsoup.parse((new URL(url)), 30000);

Element element = document.getElementById("J_goodsList");

Elements elements = element.getElementsByTag("li");

List list = new ArrayList();

for (Element el : elements) {

String src = el.getElementsByTag("img").eq(0).attr("data-lazy-img");

String price = el.getElementsByClass("p-price").eq(0).text();

String name = el.getElementsByClass("p-name").eq(0).text();

list.add(new Content(name, src, price));

}

return list;

}

}

运行效果:

以上就是我们使用java爬虫进行网页解析的方法,学会的小伙伴快行动起来吧。

本文来源于网络,如有雷同联系作者修改。更多Java学习指路:js教程

java使用爬虫_Java中如何使用爬虫进行解析?相关推荐

  1. java 内存接口_java中多态机制的内存解析、抽象类、接口

    1.多态机制的内存解析 1).多态的三要素 *类之间具有相互继承关系: *子类重写父类的方法: *父类引用指向子类对象: 2).为了更加细致深入的了解多态运行的机制,将下列代码的在内存中运行的简图绘制 ...

  2. java timestamp 使用_Java中针对Timestamp的操作解析

    Java中针对Timestamp的数据类型操作 数据库使用Oracle 10g 32位,存在一张表STU(学生表). 这里写图片描述 二.项目结构图 这里写图片描述 三.关键代码 Stu (bean) ...

  3. java 重力脚本_Java中非常简单的脚本解析器

    我目前正在用Java进行一个小项目,我需要为我组成的机器人处理非常轻量级的脚本语言. 它不需要处理算术或任何复杂的功能,它只需要运行某些命令并处理if和while语句. 它可能看起来像这样: turn ...

  4. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  5. java 静态分派_Java中的静态分派与动态分派

    本文是<深入理解Java虚拟机>8.3.2节的读书笔记,理解有误的地方,欢迎指正 首先是两个概念: 静态类型,即是变量声明时的类型. 实际类型,变量实例化时采用的类型. 比如我们有这样一段 ...

  6. java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信

    你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...

  7. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  8. java 序列化实例_Java中的序列化与反序列化实例

    创建的字节流与平台无关.因此,在一个平台上序列化的对象可以在另一个平台上反序列化. 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接口. ObjectOutput ...

  9. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

最新文章

  1. Visual Studio中断NPM套件库服务
  2. RabbitMQ (二)docker安装rabbitMQ
  3. MySQL的简单使用-(一)
  4. UA MATH564 概率论 QE练习题1
  5. sublimelinter-php 错误代码提示
  6. Lambda,会序列化吗?
  7. 在Azure Data StudioSQL笔记本中使用Python脚本加密密码
  8. linux备份用户设置,Linux配置备份
  9. Spark之functions
  10. 升级node时遇见一直报Could not access network location *:\……的错
  11. 485芯片方向切换的几种方式及原理
  12. 程序员如何在工作之外获得收入
  13. Leetcode-机器人大冒险 (python)
  14. threejs修改camera的lookAt无效怎么办
  15. 工具善其事,必先被苦逼的其器所钝伤然后打磨之才能利其器
  16. python人工智能的重要性_为什么说Python是AI时代必备技能?
  17. Uniapp——拨打电话、发送短信
  18. 轻松掌握Notification的各种用法
  19. C语言基础 初识c语言
  20. C++ map和set

热门文章

  1. 团队代码规范java,java 开发,适用于团队的代码规范及某些约定
  2. Windows进程管理类封装
  3. Python极其简易音乐播放器
  4. ASN.1编解码:asn1c的版本分析-诺基亚
  5. Linux虚拟化KVM-Qemu分析(八)之virtio初探
  6. 总线驱动:Bus driver - USB driver for example
  7. Mysql的日期查询方法
  8. 网络不稳定的原因_关键词排名波动原因,如何解决网站排名不稳定!
  9. python 京东签到在哪里_python 使用selenium登陆京东签到哪京豆
  10. matlab自相关法,Matlab计算自相关和互相关