--- title: Selenium Scraper description: The `SeleniumScrapingTool` is designed to extract and read the content of a specified website using Selenium. icon: clipboard-user --- # `SeleniumScrapingTool` This tool is currently in development. As we refine its capabilities, users may encounter unexpected behavior. Your feedback is invaluable to us for making improvements. ## Description The SeleniumScrapingTool is crafted for high-efficiency web scraping tasks. It allows for precise extraction of content from web pages by using CSS selectors to target specific elements. Its design caters to a wide range of scraping needs, offering flexibility to work with any provided website URL. ## Prerequisites - Python 3.7 or higher - Chrome browser installed (for ChromeDriver) ## Installation ### Option 1: All-in-one installation ```shell pip install 'crewai[tools]' selenium>=4.0.0 webdriver-manager>=3.8.0 ``` ### Option 2: Step-by-step installation ```shell pip install 'crewai[tools]' pip install selenium>=4.0.0 pip install webdriver-manager>=3.8.0 ``` ### Common Installation Issues 1. If you encounter WebDriver issues, ensure your Chrome browser is up-to-date 2. For Linux users, you might need to install additional system packages: ```shell sudo apt-get install chromium-chromedriver ``` ## Basic Usage Here's a simple example to get you started with error handling: ```python from crewai_tools import SeleniumScrapingTool try: # Initialize the tool with a specific website tool = SeleniumScrapingTool(website_url='https://example.com') # Extract content content = tool.run() print(content) except Exception as e: print(f"Error during scraping: {str(e)}") # Ensure proper cleanup in case of errors tool.cleanup() ``` ## Usage Examples Below are some scenarios where the SeleniumScrapingTool can be utilized: ```python Code from crewai_tools import SeleniumScrapingTool # Example 1: # Initialize the tool without any parameters to scrape # the current page it navigates to tool = SeleniumScrapingTool() # Example 2: # Scrape the entire webpage of a given URL tool = SeleniumScrapingTool(website_url='https://example.com') # Example 3: # Target and scrape a specific CSS element from a webpage tool = SeleniumScrapingTool( website_url='https://example.com', css_element='.main-content' ) # Example 4: # Perform scraping with additional parameters for a customized experience tool = SeleniumScrapingTool( website_url='https://example.com', css_element='.main-content', cookie={'name': 'user', 'value': 'John Doe'}, wait_time=10 ) ``` ## Arguments The following parameters can be used to customize the SeleniumScrapingTool's scraping process: | Argument | Type | Description | |:---------------|:---------|:-------------------------------------------------------------------------------------------------------------------------------------| | **website_url** | `string` | **Mandatory**. Specifies the URL of the website from which content is to be scraped. | | **css_element** | `string` | **Mandatory**. The CSS selector for a specific element to target on the website, enabling focused scraping of a particular part of a webpage. | | **cookie** | `object` | **Optional**. A dictionary containing cookie information, useful for simulating a logged-in session to access restricted content. | | **wait_time** | `int` | **Optional**. Specifies the delay (in seconds) before scraping, allowing the website and any dynamic content to fully load. | Since the `SeleniumScrapingTool` is under active development, the parameters and functionality may evolve over time. Users are encouraged to keep the tool updated and report any issues or suggestions for enhancements.