京东搜索 - 爬取数据
大约 1 分钟数据库技术ElasticSearch
网页图片懒加载
关于网站图片处理,所有的图片都是延迟加载的。 source-data-lazy-img。


数据爬取工具类
@Component
public class HtmlParseUtils {
public static void main(String[] args) throws IOException {
new HtmlParseUtils().parseJd("java").forEach(System.out::println);
}
public List<Content> parseJd(String keywords) throws IOException {
// 获取请求 https://search.jd.com/Search?keyword=java
String url = "https://search.jd.com/Search?keyword=" + keywords;
// 解析网页
Document document = Jsoup.parse(new URL(url), 3000);
Element element = document.getElementById("J_goodsList");
// 获取所有的li元素
Elements elements = element.getElementsByTag("li");
List<Content> goodsList = new ArrayList<>();
// 获取元素中的内容
for (Element el : elements) {
// 关于网站图片处理,所有的图片都是延迟加载的 source-data-lazy-img
String img = el.getElementsByTag("img").eq(0).attr("data-lazy-img");
String price = el.getElementsByClass("p-price").eq(0).text();
String title = el.getElementsByClass("p-name").eq(0).text();
Content content = new Content();
content.setImg(img);
content.setPrice(price);
content.setTitle(title);
goodsList.add(content);
}
return goodsList;
}
}
结果:
Content(title=Java核心技术卷I基础知识+卷II高级特性 原书第11版 2020年新版 华章图书|8066362 专注专业,正品保证,关注店铺成为会员可专享店铺专属优惠,团购可联系在线客服转团购专线客服!, img=//img13.360buyimg.com/n1/s200x200_jfs/t1/159142/19/12311/144054/60487ef0Ec0a9f5cb/4027cd9b1ddbb087.jpg, price=¥189.00)
Content(title=Java实战 第2版(图灵出品) 100册以上团购优惠联系电话4006186622, img=//img10.360buyimg.com/n1/s200x200_jfs/t1/58652/2/12362/129522/5de751dcE494b5dfa/d00e13726d206e88.jpg, price=¥89.60)
Process finished with exit code 0