Java爬虫抓取B站视频信息

依赖

xml 复制代码
<dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.17.2</version> <!-- 最新版可去官网查看 -->
        </dependency>

编码

java 复制代码
public static List<VideoDto> parseSearchPage(String keyword, int page,int lim) throws Exception {
        String url = "https://search.bilibili.com/all?keyword=" + keyword + "&page=" + page;
        Document doc = Jsoup.connect(url)
                .userAgent("Mozilla/5.0")
                .timeout(10000)
                .get();
        List<VideoDto> list = new ArrayList<>();
        Elements pictures = doc.select("picture");
        System.out.println("OK");
        int cnt=0;
        for (Element picture : pictures) {

            String pictureSrc = Objects.requireNonNull(picture.selectFirst("source")).attr("srcset");
            String title = Objects.requireNonNull(picture.selectFirst("img")).attr("alt");

            VideoDto videoDto = new VideoDto();
            videoDto.setPicture(pictureSrc);
            videoDto.setTitle(title);
            list.add(videoDto);
            cnt++;
            if(cnt==lim)break;


        }
        Elements divElements = doc.select("div.bili-video-card__info--right");
        cnt=0;
        for(Element divElement : divElements){
            Element firstLink = divElement.selectFirst("a");
            if(firstLink != null){
                String link= firstLink.attr("href");
                VideoDto videoDto=list.get(cnt);
                videoDto.setUrl(link);
                list.set(cnt,videoDto);
                cnt++;
                if(cnt==lim)break;
            }

        }
        return list;
    }
相关推荐
Wang15306 小时前
jdk内存配置优化
java·计算机网络
0和1的舞者6 小时前
Spring AOP详解(一)
java·开发语言·前端·spring·aop·面向切面
蒜丶6 小时前
Windows 11 22H2 跳过联网激活
windows
Wang15306 小时前
Java多线程死锁排查
java·计算机网络
小小星球之旅7 小时前
CompletableFuture学习
java·开发语言·学习
jiayong237 小时前
知识库概念与核心价值01
java·人工智能·spring·知识库
皮皮林5518 小时前
告别 OOM:EasyExcel 百万数据导出最佳实践(附开箱即用增强工具类)
java
Da Da 泓8 小时前
多线程(七)【线程池】
java·开发语言·线程池·多线程
To Be Clean Coder8 小时前
【Spring源码】getBean源码实战(三)
java·mysql·spring
Wokoo79 小时前
开发者AI大模型学习与接入指南
java·人工智能·学习·架构