1、依赖
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
2、使用
public final class JDUtil {
private static String keyword_url = "https://search.jd.com/Search?keyword=";
public static List<Good> getGoodList(String keyword) throws IOException {
List<Good> goodList = new ArrayList<>();
Document document = null;
try {
Connection con = Jsoup.connect(keyword_url + keyword).userAgent(
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36")
.timeout(30000); // 设置连接超时时间
document = con.get();
System.out.println(document);
Element j_goodsList = document.getElementById("J_goodsList");
Elements elementsByClass = j_goodsList.getElementsByClass("gl-i-wrap");
elementsByClass.stream().forEach(item -> {
String price = item.getElementsByClass("p-price").eq(0).text();
price = price.substring(1, price.lastIndexOf("¥") != 0 ? price.lastIndexOf("¥") : price.length());
System.out.println(price);
Good good = Good.builder().publish(item.getElementsByClass("p-shopnum").text())
.imgUrl(item.getElementsByTag("img").attr("data-lazy-img"))
.name(item.getElementsByClass("p-name").tagName("a").text())
.desc(item.getElementsByAttribute("data-tips").attr("data-tips"))
.price(Double.parseDouble(price))
.unit(item.getElementsByClass("p-price").tagName("em").text().substring(0,1)).build();
goodList.add(good);
});
}catch (NullPointerException e){
e.printStackTrace();
System.out.println("未拿到页面数据");
}
return goodList;
}
}