| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package top.lvzhiqiang.service;
- import java.io.File;
- import org.jsoup.nodes.Document;
- import org.springframework.boot.system.ApplicationHome;
- /**
- * 通用接口,以后你要加 JavBus、JavLibrary,直接扩展这个接口即可
- *
- * @author: lvzhiqiang
- * @date: 2026/2/11 13:54
- */
- public interface ScraperService {
- /**
- * 获取支持的类型,如 javdb
- *
- * @return: java.lang.String
- * @author: lvzhiqiang
- * @date: 2026/2/11 15:45
- */
- String getServiceType();
- /**
- * 【核心方法】获取页面源码 (带 Session 检查机制)
- * 所有的业务抓取都要调用这个方法,不要直接用 page.navigate
- *
- * @return: org.jsoup.nodes.Document
- * @author: lvzhiqiang
- * @date: 2026/2/11 15:45
- */
- Document getPageDocumentSecurely(String targetUrl);
- /**
- * 获取项目根目录的通用方法
- *
- * @return: java.io.File
- * @author: lvzhiqiang
- * @date: 2026/2/12 11:21
- */
- default File getAppRootPath() {
- ApplicationHome home = new ApplicationHome(getClass());
- File source = home.getSource();
-
- // 如果 source 不为空,说明是在 Jar 包里运行,返回 Jar 包同级目录
- if (source != null) {
- return source.getParentFile();
- }
-
- // 如果 source 为空,说明是在 IDE 或 测试环境运行
- // 此时返回项目的根目录 (也就是 System.getProperty("user.dir"))
- return new File(System.getProperty("user.dir"));
- }
- }
|