mirror of
https://github.com/WINGS-N/librustoreparser.git
synced 2026-07-14 20:55:34 +00:00
Парсит рустор, достаёт имена пакетов приложений от определённых нежелательных разработчиков
- Java 100%
| src/main/java/wings/v/rustore/parser | ||
| .gitignore | ||
| build.gradle.kts | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
librustoreparser
Методы
RuStoreCrawlerConfig.builder(): создаёт настройки обходаbaseUrl(String): задаёт базовый URL RuStoreseedDeveloperIds(Collection<String>): задаёт ID разработчиков для обходаdirectPackages(Collection<String>): добавляет package name напрямуюmaxDeveloperPages(int): ограничивает число страниц одного разработчика,0без лимитаmaxSeedDevelopers(int): ограничивает число разработчиков,0без лимитаconcurrency(int): задаёт число параллельных обходовrequestTimeout(Duration): задаёт таймаут HTTP запросаrequestDelay(Duration): задаёт задержку между запросамиmaxAttempts(int): задаёт число попыток запросаuserAgent(String): задаёт user agentlogger(RuStoreLogger): подключает обработчик логовbuild(): возвращаетRuStoreCrawlerConfignew RuStoreCrawler(config): создаёт crawler со стандартным HTTP загрузчикомnew RuStoreCrawler(config, fetcher): создаёт crawler со своимRuStorePageFetchercrawl(): запускает обход и возвращаетCrawlResultCrawlResult.getPackageNames(): возвращает список package nameCrawlResult.getApps(): возвращает списокAppInfoCrawlResult.getDevelopers(): возвращает списокDeveloperSeedAppInfo.getPackageName(): возвращает package nameAppInfo.getAppName(): возвращает название приложенияAppInfo.getDeveloperName(): возвращает имя разработчикаAppInfo.getDeveloperPath(): возвращает путь разработчика в RuStoreDeveloperSeed.getId(): возвращает ID разработчикаDeveloperSeed.getPath(): возвращает путь разработчикаDeveloperSeed.getName(): возвращает имя разработчика
Пример: package name
RuStoreCrawlerConfig config = RuStoreCrawlerConfig.builder().build();
RuStoreCrawler crawler = new RuStoreCrawler(config);
CrawlResult result = crawler.crawl();
for (String packageName : result.getPackageNames()) {
System.out.println(packageName);
}
Пример: настройки
RuStoreCrawlerConfig config = RuStoreCrawlerConfig.builder()
.seedDeveloperIds(List.of("df91b73f"))
.directPackages(List.of("ru.plazius.cofix"))
.maxDeveloperPages(0)
.maxSeedDevelopers(0)
.concurrency(3)
.requestTimeout(Duration.ofSeconds(20))
.requestDelay(Duration.ofMillis(300))
.maxAttempts(5)
.logger(System.out::println)
.build();
Пример: свой загрузчик
RuStorePageFetcher fetcher = uri -> new RuStorePageFetcher.PageResponse(
200,
"<html>...</html>"
);
RuStoreCrawler crawler = new RuStoreCrawler(config, fetcher);
CrawlResult result = crawler.crawl();