🔍 Crawller is a Python-based tool that crawls websites, extracts features, and analyzes workflows using GPT-4o-mini. It provides insights into website functionality, user interface features, business features, and workflows through an interactive Streamlit interface.
- 🔗 Website Crawling: Crawl websites to extract data and links.
- 🤖 Feature Analysis: Analyze crawled pages using GPT-4 to identify UI features, workflows, and business functionalities.
- 🌐 Streamlit Interface: User-friendly web interface for input and result visualization.
- ⚙️ Customizable Options: Configure crawling depth, timeout, and maximum pages to crawl.
- 🕒 Result History: View previous analysis results directly in the interface.
- 📁 Data Export: Save crawled data as JSON files in a dedicated
crawled_datafolder.
- Python 3.9 or higher
- Node.js (required for Playwright)
- Playwright (for browser automation)
-
Clone the repository:
git clone https://github.com/VarunMotiyani/crawller.git cd crawller-main -
Create and activate a conda environment:
conda create -n crawller-env python=3.9 -y conda activate crawller-env
-
Install Python dependencies:
pip install -r requirements.txt
-
Install Playwright browsers:
playwright install
-
Set up your OpenAI API key:
- You can enter the API key directly in the Streamlit app when prompted, or use
.envor Streamlit Secrets.
- You can enter the API key directly in the Streamlit app when prompted, or use
-
Start the Streamlit app:
streamlit run src/app.py
-
Open the app in your browser (usually at http://localhost:8501).
-
Enter the URL to analyze, your OpenAI API key, and configure crawling options.
-
Click Start Analysis to begin crawling and analyzing the website.
crawller-main/
├── src/
| ├── config/
| | ├──settings.py # Configuration settings
│ ├── app.py # Main Streamlit application
│ ├── crawler.py # Web crawler implementation
│ ├── feature_extractor.py # GPT-4-based feature extraction
│ ├── utils/
│ │ ├── helpers.py # Utility functions
│ └── crawled_data/ # Directory for saving crawled data
├── requirements.txt # Python dependencies
├── README.md
You can configure the following options directly in the Streamlit app:
-
Maximum Pages to Crawl:
Limit the number of pages the crawler visits.
Default:10 -
Timeout:
Set the timeout (in seconds) for page loading to avoid delays.
Default:30
- Crawled data is automatically saved in the
crawled_data/folder. - Each file is saved in JSON format with a timestamp-based filename for easy identification.
Example filename:
crawled_data_20250415_123456.json
- Enter the URL in the Streamlit app (e.g.,
https://www.wikipedia.org). - Configure Crawling Options:
- Maximum Pages:
10 - Timeout:
30 seconds
- Maximum Pages:
- Click Start Analysis.
Once complete, the app will display analysis results including:
- ✅ Total Pages Analyzed
- 🎯 UI Features (e.g., buttons, modals, input fields)
- 🔁 Workflows (e.g., sign-up flows, search functionality)
- 💼 Business Features (e.g., checkout, login, user dashboard)
- Playwright Not Installed
➤ Run the following command to install the required browsers:playwright install
Ensure you provide a valid OpenAI API key in the Streamlit app when prompted. Without it, the feature extraction via GPT-4 will not function.
Check the extract_links method in crawler.py to make sure it is correctly identifying and returning internal links for further crawling.
Ensure the crawled_data/ folder exists. The application should create it automatically if missing, but verify that there are no permission or path-related issues.
Contributions are welcome! Please follow these steps:
-
Fork the repository:
- Go to the repository's GitHub page and click on the "Fork" button at the top-right of the page.
-
Create a new branch:
- After forking the repository, clone it to your local machine:
git clone https://github.com/VarunMotiyani/crawller.git cd crawller-main - Create a new branch for your feature or bug fix:
git checkout -b my-new-feature
- After forking the repository, clone it to your local machine:
-
Commit your changes:
- Make the necessary changes to the codebase.
- Add the modified files to staging:
git add . - Commit your changes with a meaningful message:
git commit -m "Add new feature or fix bug"
-
Push to your branch:
- Push your changes to the new branch on your fork:
git push origin my-new-feature
- Push your changes to the new branch on your fork:
-
Open a pull request:
- Go to the original repository on GitHub, and you'll see a prompt to open a pull request with the changes from your fork.
- Click on "New Pull Request", provide a description of your changes, and submit it for review.
Thank you for contributing!


