前提条件
- Java 17+ と Spring Boot 3+
- EvoCrawl APIキー — 無料で取得できます
依存関係を追加する
- Gradle (Kotlin DSL)
- Maven
dependencies {
implementation("com.evocrawl:evocrawl-java:1.2.0")
}
<dependency>
<groupId>com.evocrawl</groupId>
<artifactId>evocrawl-java</artifactId>
<version>1.2.0</version>
</dependency>
設定
application.properties にAPIキーを追加します:
evocrawl.api-key=${EVOCRAWL_API_KEY}
export EVOCRAWL_API_KEY=fc-YOUR-API-KEY
設定Beanを作成する
EvocrawlConfig.java を作成します。
import com.evocrawl.client.EvocrawlClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class EvocrawlConfig {
@Bean
public EvocrawlClient evocrawlClient(
@Value("${evocrawl.api-key}") String apiKey) {
return EvocrawlClient.builder()
.apiKey(apiKey)
.build();
}
}
RESTコントローラーを作成
EvocrawlController.java を作成します。
import com.evocrawl.client.EvocrawlClient;
import com.evocrawl.models.Document;
import com.evocrawl.models.SearchData;
import com.evocrawl.models.SearchOptions;
import com.evocrawl.models.ScrapeOptions;
import com.evocrawl.models.BrowserExecuteResponse;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/api")
public class EvocrawlController {
private final EvocrawlClient evocrawl;
public EvocrawlController(EvocrawlClient evocrawl) {
this.evocrawl = evocrawl;
}
@PostMapping("/search")
public SearchData search(@RequestBody Map<String, Object> body) {
return evocrawl.search(
(String) body.get("query"),
SearchOptions.builder()
.limit((int) body.getOrDefault("limit", 5))
.build()
);
}
@PostMapping("/scrape")
public Map<String, Object> scrape(@RequestBody Map<String, String> body) {
Document doc = evocrawl.scrape(body.get("url"));
return Map.of(
"markdown", doc.getMarkdown(),
"metadata", doc.getMetadata()
);
}
@PostMapping("/interact")
public Map<String, Object> interact(@RequestBody Map<String, String> body) {
Document doc = evocrawl.scrape(body.get("url"),
ScrapeOptions.builder().formats(List.of((Object) "markdown")).build());
String scrapeId = (String) doc.getMetadata().get("scrapeId");
BrowserExecuteResponse response = evocrawl.interact(scrapeId,
body.getOrDefault("code", "const title = await page.title(); console.log(title);"));
evocrawl.stopInteractiveBrowser(scrapeId);
return Map.of("result", response.getStdout());
}
}
実行してみる
./gradlew bootRun
試す
# ウェブを検索する
curl -X POST http://localhost:8080/api/search \
-H "Content-Type: application/json" \
-d '{"query": "evocrawl web scraping"}'
# ページをスクレイピングする
curl -X POST http://localhost:8080/api/scrape \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
# ページをInteractする
curl -X POST http://localhost:8080/api/interact \
-H "Content-Type: application/json" \
-d '{"url": "https://www.amazon.com", "code": "const title = await page.title(); console.log(title);"}'
次のステップ
Search ドキュメント
Web を検索してページ全体のコンテンツを取得
スクレイピング ドキュメント
フォーマット、アクション、プロキシなど、スクレイピングのオプションを網羅
Interact ドキュメント
クリック、フォーム入力、動的コンテンツの抽出
Java SDK リファレンス
クロール、map、バッチスクレイプなどを含む SDK の完全リファレンス

