java使用爬虫_Java中如何使用爬虫进行解析?
我们都知道可以用爬虫来找寻一些想要的数据,除了可以使用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中如何使用爬虫进行解析?相关推荐
- java 内存接口_java中多态机制的内存解析、抽象类、接口
1.多态机制的内存解析 1).多态的三要素 *类之间具有相互继承关系: *子类重写父类的方法: *父类引用指向子类对象: 2).为了更加细致深入的了解多态运行的机制,将下列代码的在内存中运行的简图绘制 ...
- java timestamp 使用_Java中针对Timestamp的操作解析
Java中针对Timestamp的数据类型操作 数据库使用Oracle 10g 32位,存在一张表STU(学生表). 这里写图片描述 二.项目结构图 这里写图片描述 三.关键代码 Stu (bean) ...
- java 重力脚本_Java中非常简单的脚本解析器
我目前正在用Java进行一个小项目,我需要为我组成的机器人处理非常轻量级的脚本语言. 它不需要处理算术或任何复杂的功能,它只需要运行某些命令并处理if和while语句. 它可能看起来像这样: turn ...
- java mod %区别_Java中 % 与Math.floorMod() 区别详解
%为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...
- java 静态分派_Java中的静态分派与动态分派
本文是<深入理解Java虚拟机>8.3.2节的读书笔记,理解有误的地方,欢迎指正 首先是两个概念: 静态类型,即是变量声明时的类型. 实际类型,变量实例化时采用的类型. 比如我们有这样一段 ...
- java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信
你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...
- java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园
1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...
- java 序列化实例_Java中的序列化与反序列化实例
创建的字节流与平台无关.因此,在一个平台上序列化的对象可以在另一个平台上反序列化. 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接口. ObjectOutput ...
- java 数据类型分为_JAVA中分为基本数据类型及引用数据类型
byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...
最新文章
- Visual Studio中断NPM套件库服务
- RabbitMQ (二)docker安装rabbitMQ
- MySQL的简单使用-(一)
- UA MATH564 概率论 QE练习题1
- sublimelinter-php 错误代码提示
- Lambda,会序列化吗?
- 在Azure Data StudioSQL笔记本中使用Python脚本加密密码
- linux备份用户设置,Linux配置备份
- Spark之functions
- 升级node时遇见一直报Could not access network location *:\……的错
- 485芯片方向切换的几种方式及原理
- 程序员如何在工作之外获得收入
- Leetcode-机器人大冒险 (python)
- threejs修改camera的lookAt无效怎么办
- 工具善其事,必先被苦逼的其器所钝伤然后打磨之才能利其器
- python人工智能的重要性_为什么说Python是AI时代必备技能?
- Uniapp——拨打电话、发送短信
- 轻松掌握Notification的各种用法
- C语言基础 初识c语言
- C++ map和set
热门文章
- 团队代码规范java,java 开发,适用于团队的代码规范及某些约定
- Windows进程管理类封装
- Python极其简易音乐播放器
- ASN.1编解码:asn1c的版本分析-诺基亚
- Linux虚拟化KVM-Qemu分析(八)之virtio初探
- 总线驱动:Bus driver - USB driver for example
- Mysql的日期查询方法
- 网络不稳定的原因_关键词排名波动原因,如何解决网站排名不稳定!
- python 京东签到在哪里_python 使用selenium登陆京东签到哪京豆
- matlab自相关法,Matlab计算自相关和互相关