create static method

Future<PivoxScraper> create({
  1. required ProxyManager proxyManager,
  2. int defaultTimeout = 30000,
  3. int maxRetries = 3,
  4. int defaultDelayMs = 1000,
  5. Map<String, int>? domainDelays,
  6. List<String>? userAgents,
  7. bool handleCookies = true,
  8. bool followRedirects = true,
  9. bool useDatabase = true,
})

Factory constructor to create a PivoxScraper with default components

Implementation

static Future<PivoxScraper> create({
  required ProxyManager proxyManager,
  int defaultTimeout = 30000,
  int maxRetries = 3,
  int defaultDelayMs = 1000,
  Map<String, int>? domainDelays,
  List<String>? userAgents,
  bool handleCookies = true,
  bool followRedirects = true,

  bool useDatabase = true,
}) async {
  // Create components
  final rateLimiter = RateLimiter(
    defaultDelayMs: defaultDelayMs,
    domainDelays: domainDelays,
  );

  final userAgentRotator = UserAgentRotator(userAgents: userAgents);

  final cookieManager = await CookieManager.create();

  final scraper = await AdvancedWebScraper.create(
    proxyManager: proxyManager,
    defaultTimeout: defaultTimeout,
    maxRetries: maxRetries,
    handleCookies: handleCookies,
    followRedirects: followRedirects,
  );

  final storageManager = await DataCacheManager.create(
    useDatabase: useDatabase,
  );

  final jobScheduler = await ScrapingJobScheduler.create(scraper);

  return PivoxScraper(
    scraper: scraper,
    rateLimiter: rateLimiter,
    userAgentRotator: userAgentRotator,
    cookieManager: cookieManager,
    storageManager: storageManager,
    jobScheduler: jobScheduler,
  );
}