Java Jsoup 当当图书畅销榜近24小时TOP500

package com.example.demo.web;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;

public class aa {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        //当当网页数据是一页20条,共25页
        for (int i = 1;i <= 25;i++){
            Document document;
            String url = "http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-24hours-0-0-1-"+i;
            try {
                document = Jsoup.connect(url).timeout(50000).get();
                Elements es = null;
                if(document != null){
                    es = document.getElementsByAttributeValue("class","bang_list_box").first().getElementsByTag("li");
                }
                for (Element element : es) {
                    //获取排名
                    Element ele  = element.getElementsByAttributeValue("class","list_num").first();
                    if (ele == null){
                        ele  = element.getElementsByAttributeValue("class","list_num red").first();
                    }
                    try {
                        String id = ele.text();
                        sb.append(id + " ");
                    }catch (Exception e){
                        //System.err.println("ele id:"+element);
                    }
                    //获取封面
                    Element link = element.getElementsByAttributeValue("class","pic").first();
                    try {
                        Element ing = link.getElementsByTag("img").first();
                        String href = ing.attr("src");
                        sb.append(href+",  ");
                    }catch (Exception e){
                        //System.err.println("ele href:"+element);
                    }
                    //获取书名
                    Element name = element.getElementsByAttributeValue("class","name").first();
                    try {
                        Element nam = name.getElementsByTag("a").first();
                        String na = nam.text();
                        sb.append(na + ",  ");
                    }catch (Exception e){
                       // System.err.println("ele nam:"+element);
                    }
                    //获取作者,出版社,出版日期
                    Elements publisher_info  = element.getElementsByAttributeValue("class","publisher_info");
                    for (Element a : publisher_info){
                        try {
                            Elements publisher = a.getElementsByTag("a");
                            for (Element b : publisher){
                                String publishe = b.text();
                                sb.append(publishe +"|");
                            }
                        }catch (Exception e){
                            //System.err.println("ele publisher:"+element);
                        }
                        try {
                            Element c = a.getElementsByTag("span").first();
                            String publi = c.text();
                            sb.append(publi +",  ");
                        }catch (Exception e){}
                    }
                    //获取价格
                    Element price  = element.getElementsByAttributeValue("class","price").first();
                    try {
                        Element price_r = price.getElementsByAttributeValue("class","price_r").first();
                        String pric = price_r.text();
                        sb.append(pric + " ").append("\n");
                    }catch (Exception e){
                        //System.err.println("ele price_r:"+element);
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println(sb.toString());
    }
}

这里写图片描述

这里写图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值