Java中用爬虫进行解析的实例方法
作者:小妮浅浅 时间:2021-06-23 09:07:00
我们都知道可以用爬虫来找寻一些想要的数据,除了可以使用python进行操作,我们最近学习的java同样也支持爬虫的运行,本篇小编就教大家用java爬虫来进行网页的解析,具体内容请往下看:
1、springboot项目,引入jsoup
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.10.2</version>
</dependency>
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<Content> 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<Content> list = new ArrayList<Content>();
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;
}
}
来源:https://www.py.cn/java/jichu/22296.html
标签:Java,爬虫,解析
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java锁的升级策略 偏向锁 轻量级锁 重量级锁
2022-11-07 00:50:17
![](https://img.aspxhome.com/file/2023/8/91078_0s.png)
SpringBoot持久化层操作支持技巧
2023-11-24 06:40:32
![](https://img.aspxhome.com/file/2023/3/59933_0s.png)
Spring Cloud 系列之服务调用 OpenFeign的实现
2023-10-20 07:34:00
![](https://img.aspxhome.com/file/2023/9/77359_0s.png)
kettle中使用js调用java类的方法
2022-05-09 00:06:31
java中驼峰与下划线的写法互转
2023-09-21 09:47:36
Spring Security添加验证码的两种方式小结
2021-08-05 17:24:25
详解Java中对象池的介绍与使用
2023-07-25 13:13:48
说说@ModelAttribute在父类和子类中的执行顺序
2022-07-31 17:59:55
SpringBoot多数据源配置详细教程(JdbcTemplate、mybatis)
2023-08-26 01:59:33
详解Spring-boot中读取config配置文件的两种方式
2021-07-04 15:52:55
SpringMVC后端返回数据到前端代码示例
2023-06-20 13:12:47
SpringBoot基于Sentinel在服务上实现接口限流
2023-11-27 17:19:25
![](https://img.aspxhome.com/file/2023/4/59574_0s.jpg)
JavaGUI常用三种布局使用介绍
2023-05-19 08:01:06
![](https://img.aspxhome.com/file/2023/6/73036_0s.png)
Android实现实时通信示例
2022-12-27 00:59:55
![](https://img.aspxhome.com/file/2023/0/98670_0s.png)
C#采用FileSystemWatcher实现监视磁盘文件变更的方法
2023-12-10 02:52:49
![](https://img.aspxhome.com/file/2023/0/91260_0s.png)
游戏开发之随机概率的选择算法
2022-08-26 13:21:09
Java异常处理之try...catch...语句的使用进阶
2022-03-16 03:06:09
浅谈C#泛型的用处与特点
2022-04-22 02:39:35
SpringBoot整合WebService的实现示例
2023-05-25 12:37:55
![](https://img.aspxhome.com/file/2023/4/60754_0s.png)
OpenCV画任意圆弧曲线
2023-06-22 19:28:44
![](https://img.aspxhome.com/file/2023/5/94045_0s.jpg)