京东搜索 - 爬取数据

HeJin大约 1 分钟数据库技术ElasticSearch

网页图片懒加载

关于网站图片处理,所有的图片都是延迟加载的。 source-data-lazy-img。

image-20210320092654004
image-20210320092654004
image-20210320092616363
image-20210320092616363

数据爬取工具类

@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高级特性 原书第112020年新版 华章图书|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