昨天从狂神大佬那学习了如何用jsoup爬去网站数据,现在整理了一下给大家分享一下。
先创建一个名叫JsoupPojo的实体类用来装入数据。
@Data
public class JsoupPojo {private String src;private String name;
}
下面是将用来爬取的方法封装成了一个工具类
@Component
public class JsonUpUtil {public ArrayList<JsoupPojo> JDJsonUP(String key) throws Exception{ArrayList<JsoupPojo> list = new ArrayList<JsoupPojo>();/*京东搜索地址*/String keyword = "https://search.jd.com/Search?keyword="+key;/*此步根据赋值给keyword的URL来获取页面dom*/Document dom = Jsoup.parse(new URL(keyword),5000);/* getElementById根据页面标签ID获取其中元素*/Element goodsList = dom.getElementById("J_goodsList");/* getElementsByTag根据页面标签获取其中元素*/Elements li = goodsList.getElementsByTag("li");for (Element l : li ){/*循环获取到的J_goodsList下的li标签,从其中第1个img标签获取名叫data-lazy-img的元素*/String img = l.getElementsByTag("img").eq(0).attr("data-lazy-img");String name = l.getElementsByClass("p-price").eq(0).text();JsoupPojo pojo = new JsoupPojo();/* 塞入实体类*/pojo.setSrc(img);pojo.setName(name);/*装入集合*/list.add(pojo);}return list;}}
最后写一个测试类测试一下,结果爬去成功!