Detailed API Documentation
Overview
This section provides comprehensive documentation for the Crawl4AI API, covering all classes, methods, and their parameters. This guide will help you understand how to utilize the API to its full potential, enabling efficient web crawling and data extraction.
WebCrawler Class
The WebCrawler
class is the primary interface for crawling web pages and extracting data.
Initialization
from crawl4ai import WebCrawler
crawler = WebCrawler()
Methods
warmup()
Prepares the crawler for use, such as loading necessary models.
crawler.warmup()
run(url: str, **kwargs) -> CrawlResult
Crawls the specified URL and returns the result.
- Parameters:
url
(str): The URL to crawl.-
**kwargs
: Additional parameters for customization. -
Returns:
-
CrawlResult
: An object containing the crawl result. -
Example:
result = crawler.run(url="https://www.nbcnews.com/business")
print(result)
CrawlResult Class
Represents the result of a crawl operation.
- Attributes:
url
(str): The URL of the crawled page.html
(str): The raw HTML of the page.success
(bool): Whether the crawl was successful.cleaned_html
(Optional[str]): The cleaned HTML.media
(Dict[str, List[Dict]]): Media tags in the page (images, audio, video).links
(Dict[str, List[Dict]]): Links in the page (external, internal).screenshot
(Optional[str]): Base64 encoded screenshot.markdown
(Optional[str]): Extracted content in Markdown format.extracted_content
(Optional[str]): Extracted meaningful content.metadata
(Optional[dict]): Metadata from the page.error_message
(Optional[str]): Error message if any.
CrawlerStrategy Classes
The CrawlerStrategy
classes define how the web crawling is executed.
CrawlerStrategy Base Class
An abstract base class for different crawler strategies.
Methods
crawl(url: str, **kwargs) -> str
: Crawls the specified URL.take_screenshot(save_path: str)
: Takes a screenshot of the current page.update_user_agent(user_agent: str)
: Updates the user agent for the browser.set_hook(hook_type: str, hook: Callable)
: Sets a hook for various events.
LocalSeleniumCrawlerStrategy Class
Uses Selenium to crawl web pages.
Initialization
from crawl4ai.crawler_strategy import LocalSeleniumCrawlerStrategy
strategy = LocalSeleniumCrawlerStrategy(js_code=["console.log('Hello, world!');"])
Methods
crawl(url: str, **kwargs)
: Crawls the specified URL.take_screenshot(save_path: str)
: Takes a screenshot of the current page.update_user_agent(user_agent: str)
: Updates the user agent for the browser.set_hook(hook_type: str, hook: Callable)
: Sets a hook for various events.
Example
result = strategy.crawl("https://www.example.com")
strategy.take_screenshot("screenshot.png")
strategy.update_user_agent("Mozilla/5.0")
strategy.set_hook("before_get_url", lambda: print("About to get URL"))
ChunkingStrategy Classes
The ChunkingStrategy
classes define how the text from a web page is divided into chunks.
RegexChunking Class
Splits text using regular expressions.
Initialization
from crawl4ai.chunking_strategy import RegexChunking
chunker = RegexChunking(patterns=[r'\n\n'])
Methods
chunk(text: str) -> List[str]
: Splits the text into chunks.
Example
chunks = chunker.chunk("This is a sample text. It will be split into chunks.")
NlpSentenceChunking Class
Uses NLP to split text into sentences.
Initialization
from crawl4ai.chunking_strategy import NlpSentenceChunking
chunker = NlpSentenceChunking()
Methods
chunk(text: str) -> List[str]
: Splits the text into sentences.
Example
chunks = chunker.chunk("This is a sample text. It will be split into sentences.")
TopicSegmentationChunking Class
Uses the TextTiling algorithm to segment text into topics.
Initialization
from crawl4ai.chunking_strategy import TopicSegmentationChunking
chunker = TopicSegmentationChunking(num_keywords=3)
Methods
chunk(text: str) -> List[str]
: Splits the text into topic-based segments.
Example
chunks = chunker.chunk("This is a sample text. It will be split into topic-based segments.")
FixedLengthWordChunking Class
Splits text into chunks of fixed length based on the number of words.
Initialization
from crawl4ai.chunking_strategy import FixedLengthWordChunking
chunker = FixedLengthWordChunking(chunk_size=100)
Methods
chunk(text: str) -> List[str]
: Splits the text into fixed-length word chunks.
Example
chunks = chunker.chunk("This is a sample text. It will be split into fixed-length word chunks.")
SlidingWindowChunking Class
Uses a sliding window approach to chunk text.
Initialization
from crawl4ai.chunking_strategy import SlidingWindowChunking
chunker = SlidingWindowChunking(window_size=100, step=50)
Methods
chunk(text: str) -> List[str]
: Splits the text using a sliding window approach.
Example
chunks = chunker.chunk("This is a sample text. It will be split using a sliding window approach.")
ExtractionStrategy Classes
The ExtractionStrategy
classes define how meaningful content is extracted from the chunks.
NoExtractionStrategy Class
Returns the entire HTML content without any modification.
Initialization
from crawl4ai.extraction_strategy import NoExtractionStrategy
extractor = NoExtractionStrategy()
Methods
extract(url: str, html: str) -> str
: Returns the HTML content.
Example
extracted_content = extractor.extract(url="https://www.example.com", html="<html>...</html>")
LLMExtractionStrategy Class
Uses a Language Model to extract meaningful blocks from HTML.
Initialization
from crawl4ai.extraction_strategy import LLMExtractionStrategy
extractor = LLMExtractionStrategy(provider='openai', api_token='your_api_token', instruction='Extract only news about AI.')
Methods
extract(url: str, html: str) -> str
: Extracts meaningful content using the LLM.
Example
extracted_content = extractor.extract(url="https://www.example.com", html="<html>...</html>")
CosineStrategy Class
Clusters text chunks based on cosine similarity.
Initialization
from crawl4ai.extraction_strategy import CosineStrategy
extractor = CosineStrategy(semantic_filter="finance", word_count_threshold=10)
Methods
extract(url: str, html: str) -> str
: Extracts clusters of text based on cosine similarity.
Example
extracted_content = extractor.extract(url="https://www.example.com", html="<html>...</html>")
TopicExtractionStrategy Class
Uses the TextTiling algorithm to segment HTML content into topics and extract keywords.
Initialization
from crawl4ai.extraction_strategy import TopicExtractionStrategy
extractor = TopicExtractionStrategy(num_keywords=3)
Methods
extract(url: str, html: str) -> str
: Extracts topic-based segments and keywords.
Example
extracted_content = extractor.extract(url="https://www.example.com", html="<html>...</html>")
Parameters
Here are the common parameters used across various classes and methods:
url
(str): The URL to crawl.html
(str): The HTML content of the page.user_agent
(str): The user agent for the HTTP requests.patterns
(list): A list of regular expression patterns for chunking.num_keywords
(int): Number of keywords for topic extraction.chunk_size
(int): Number of words in each chunk.window_size
(int): Number of words in the sliding window.step
(int): Step size for the sliding window.semantic_filter
(str): Keywords for filtering relevant documents.word_count_threshold
(int): Minimum number of words per cluster.max_dist
(float): Maximum cophenetic distance for clustering.linkage_method
(str): Linkage method for hierarchical clustering.top_k
(int): Number of top categories to extract.provider
(
str): Provider for language model completions.
- api_token
(str): API token for the provider.
- instruction
(str): Instruction to guide the LLM extraction.
Conclusion
This detailed API documentation provides a thorough understanding of the classes, methods, and parameters in the Crawl4AI library. With this knowledge, you can effectively use the API to perform advanced web crawling and data extraction tasks.