create static method

Future<AdvancedWebScraper> create({
  1. required ProxyManager proxyManager,
  2. int defaultTimeout = 30000,
  3. int maxRetries = 3,
  4. bool handleCookies = true,
  5. bool followRedirects = true,
  6. bool respectRobotsTxt = true,
  7. int maxConcurrentTasks = 5,
})

Factory constructor to create an AdvancedWebScraper with default components

Implementation

static Future<AdvancedWebScraper> create({
  required ProxyManager proxyManager,
  int defaultTimeout = 30000,
  int maxRetries = 3,
  bool handleCookies = true,
  bool followRedirects = true,
  bool respectRobotsTxt = true,
  int maxConcurrentTasks = 5,
}) async {
  final logger = ScrapingLogger();
  final cookieManager = await CookieManager.create();
  final robotsTxtHandler = RobotsTxtHandler(
    proxyManager: proxyManager,
    logger: logger,
    respectRobotsTxt: respectRobotsTxt,
  );

  final rateLimiter = EnhancedRateLimiter(
    robotsTxtHandler: robotsTxtHandler,
    logger: logger,
    maxRetries: maxRetries,
  );

  final streamingParser = StreamingHtmlParser(logger: logger);
  final memoryEfficientParser = MemoryEfficientParser(logger: logger);
  final taskQueue = ScrapingTaskQueue(
    maxConcurrentTasks: maxConcurrentTasks,
    logger: logger,
  );

  return AdvancedWebScraper(
    proxyManager: proxyManager,
    cookieManager: cookieManager,
    rateLimiter: rateLimiter,
    robotsTxtHandler: robotsTxtHandler,
    streamingParser: streamingParser,
    memoryEfficientParser: memoryEfficientParser,
    taskQueue: taskQueue,
    logger: logger,
    defaultTimeout: defaultTimeout,
    maxRetries: maxRetries,
    handleCookies: handleCookies,
    followRedirects: followRedirects,
    respectRobotsTxt: respectRobotsTxt,
    maxConcurrentTasks: maxConcurrentTasks,
  );
}