Java爬虫抓取B站视频信息

news/2025/3/22 6:57:07/

依赖

<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;}

http://www.ppmy.cn/news/1581085.html

相关文章

VS Code PowerShell、Windows PowerShell、CMD 的区别与联系

VS Code PowerShell、Windows PowerShell、CMD 的区别与联系? VS Code PowerShell、Windows PowerShell、CMD 的区别与联系&#xff1a; 一、核心概念对比 名称 全称 类型 定位 VS Code PowerShell Visual Studio Code PowerShell 代码编辑器集成终端 开发/脚本编写…

Python实现ONNXRuntime推理YOLOv11模型

Python实现ONNXRuntime推理YOLOv11模型&#xff0c;主要在于onnxruntime推理后的后处理部分 1、安装依赖 pip install opencv-python onnxruntime numpy2、ONNX模型导出&#xff08;可选&#xff09; from ultralytics import YOLO# Load a model model YOLO("yolo11n…

【汽车开发工具选型指南】Jama Connect® for Automotive解决方案解析

本文来源jamasoftware.com&#xff0c;由Jama Software授权合作伙伴-龙智翻译整理。 Jama Connect for Automotive是什么&#xff1f; Jama Connect for Automotive 旨在为开发团队提供一个统一平台&#xff0c;用于构建安全关键型和网络安全关键型产品。提供满足行业标准和法…

Spring Boot + Spring Integration整合MQTT打造双向通信客户端

1. 概述 本文分两个章节讲解MQTT相关的知识&#xff0c;第一部份主要讲解MQTT的原理和相关配置&#xff0c;第二个章节主要讲和Spring boot的integration相结合代码的具体实现&#xff0c;如果想快速实现功能&#xff0c;可直接跳过第一章节查看第二章讲。 1.1 MQTT搭建 为了…

QT日志级别设置

开发版本代码包含了大量的qDebug&#xff0c; 发布版本可能导致未知异常。 QLoggingCategory::setFilterRules用于设置日志过滤规则&#xff0c;从而控制日志的输出。 以下是一个完整的示例&#xff0c;展示如何通过设置日志过滤规则来禁用qDebug()输出&#xff1a; …

Python functools 模块的 @lru_cache 装饰器介绍

functools.lru_cache 是 Python 标准库 functools 模块中的一个装饰器&#xff0c;用于实现简单的缓存机制。它通过缓存函数的返回值来提高函数的执行效率&#xff0c;特别是对于那些被多次调用且参数相同的函数。 LRU 缓存机制 LRU 代表 Least Recently Used&#xff0c;即最…

分布式中间件:基于 Redis 实现分布式锁

分布式中间件&#xff1a;基于 Redis 实现分布式锁 一、背景引入 在当今的互联网应用中&#xff0c;分布式系统变得越来越常见。在分布式环境下&#xff0c;多个服务实例可能会同时对共享资源进行读写操作&#xff0c;这就很容易引发数据不一致等问题。比如电商系统中的库存扣…

分布式容器技术是什么

‌分布式容器技术‌是一种将应用程序和其依赖的所有组件打包成一个可移植的容器&#xff0c;以便在任何支持容器化的平台上运行的技术。容器技术提供了一种轻量级、可移植、可扩展的应用程序部署和运行方法&#xff0c;解决了传统部署方法中的一系列问题&#xff0c;使得软件开…