超简单的爬虫我教你,jsoup一步搞定
作者:互联网
Java爬虫我教你
爬取数据是个很好玩的事情,最近我也是在研究这个东西,然后呢接下来我给大家讲一段小案例,可以满足各位小伙伴的好奇心,藤井就废话不多说,直接上代码
使用工具
maven依赖
(1)lombok
这个依赖是方便我们的爬取数据的对象方便直接进行封装
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
(2)jsoup
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.10.2</version>
</dependency>
使用工具以及框架
工具:IDEA
框架:SpringBoot
项目结构
pojo包
content.java
这个类是存放数据对象的,你需要网站的数据格式肯定是不同的,我们这次爬取网页数据如下,直接上代码:
package com.reptile.uncletj.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author 藤井大叔
* @Date 2021-01-03 22:26
* @Version SpringBoot 2.2.2
* @projectName 数据对象
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Content {
/**
* 数据类型
*/
private String title;
/**
* 价格
*/
private String price;
/**
* 照片路径
*/
private String img;
}
utils包
工具包主要用于将数据存储在集合中的业务代码,我这边直接在控制台简单展示给大家看一下
HtmlUtils.java
package com.reptile.uncletj.utils;
import com.reptile.uncletj.pojo.Content;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.net.URL;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
/**
* @Author 藤井大叔
* @Date 2021-01-03 22:29
* @Version SpringBoot 2.2.2
* @projectName
*/
public class HtmlUtils {
public List<Content> parseJD(String keywords) throws Exception {
String url = "https://search.jd.com/Search?keyword=" + URLDecoder.decode(keywords, "GBK");
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, price,src ));
}
return list;
}
}
测试
我这里写了一个测试类,直接实例化utils类就好了,上代码
Demo.java
package com.reptile.uncletj.main;
import com.reptile.uncletj.utils.HtmlUtils;
/**
* @Author 藤井大叔
* @Date 2021-01-03 22:37
* @Version SpringBoot 2.2.2
* @projectName
*/
public class Demo {
public static void main(String[] args) throws Exception {
HtmlUtils htmlUtils = new HtmlUtils();
htmlUtils.parseJD("家电").forEach(System.out::println);
}
}
爬取数据控制台显示
就是这么简单,数据就到控制台了,下期我来给大家讲解一下怎么把爬取到的数据利用起来,应该用怎么样的方式呢?尽情期待
标签:java,String,我教,爬虫,jsoup,org,import,com 来源: https://blog.csdn.net/UncleFujii/article/details/112163158