ITPub博客

首页 > IT职业 > IT图书 > Java中如何使用爬虫进行解析?

Java中如何使用爬虫进行解析?

IT图书 作者:flyingbunny 时间:2021-09-11 10:04:28 0 删除 编辑

我们都知道可以用爬虫来找寻一些想要的数据,除了可以使用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;
}
}

运行效果:

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

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

推荐操作环境:windows7系统、java10版,DELL G3电脑。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/489/viewspace-2831511/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-07-23

  • 博文量
    0
  • 访问量
    910