Skip to main content

CorgiBrowser: Scalable Web Crawling Framework

CorgiBrowser is an open-source Python framework focused at simplifying the process of web crawling and scraping. Built with scalability, efficiency, and ethical data collection in mind, it is designed for researchers, developers, and analysts who require robust data acquisition capabilities.

Documentation

readthedocs.org/projects/corgibrowser/

Table of Contents

Introduction

CorgiBrowser started from the need for a scalable solution that addresses the challenges of modern web crawling and scraping. With the internet's exponential data growth, existing frameworks often fall short in scalability and customizability. CorgiBrowser, is an all tools included framework that focus on ethical data practices, presents a pioneering approach to distributed crawling and data management.

Key Features

  • Scalability: Supports large-scale data collection with a microservices architecture, enabling horizontal scaling on cloud platforms.
  • Distributed Crawling: Offers configurable crawlers with priority settings for tailored crawling strategies.
  • Use of Custom Scraping Templates: Facilitates the integration of custom templates for precise data extraction.
  • Ethical Crawling: Complies with robots.txt standards and employs throttling to minimize the impact on web resources.
  • Cloud Integration: Works with cloud storage solutions for efficient data management and scalability.

Depencencies

Getting Started

To install CorgiBrowser, run the following command:

pip install corgibrowser

To initialize a Crawler instance:

import os
from dotenv import load_dotenv
from corgibrowser.corgi_cloud_integration.cloud_integration import CloudIntegration
from corgibrowser.corgi_datasets.DataSetsManager import DataSetsManager
from corgibrowser.corgi_settings.SettingsManager import SettingsManager
from corgibrowser.corgi_crawler.crawler import *

# Load Settings Manager
settings_manager = SettingsManager()
load_dotenv()
settings_manager.CLOUD["AZURE_STORAGE_ACCOUNT_NAME"] = os.getenv("AZURE_STORAGE_ACCOUNT_NAME")
settings_manager.CLOUD["AZURE_STORAGE_ACCOUNT_KEY"] = os.getenv("AZURE_STORAGE_ACCOUNT_KEY")

# Set Up cloud
CloudIntegration(settings_manager = settings_manager)
cloud_integration = CloudIntegration( settings_manager = settings_manager )
cloud_integration.initialize()

# Add Initial URLs
for url in DataSetsManager.load_usa_newspaper_urls():
    cloud_integration.add_url_to_queue(url)

# Crawl
crawler = WebCrawler(cloud_integration = cloud_integration, settings_manager=settings_manager )
crawler.initialize()
crawler.start()

To initialize a Scraper instance:

import os
from dotenv import load_dotenv
from corgibrowser.corgi_cloud_integration.cloud_integration import CloudIntegration
from corgibrowser.corgi_settings.SettingsManager import SettingsManager
from corgibrowser.corgi_webscraping.scraper import Scraper

# Load Settings Manager
settings_manager = SettingsManager()
load_dotenv()
settings_manager.CLOUD["AZURE_STORAGE_ACCOUNT_NAME"] = os.getenv("AZURE_STORAGE_ACCOUNT_NAME")
settings_manager.CLOUD["AZURE_STORAGE_ACCOUNT_KEY"] = os.getenv("AZURE_STORAGE_ACCOUNT_KEY")

# Set Up cloud
CloudIntegration(settings_manager = settings_manager)
cloud_integration = CloudIntegration( settings_manager = settings_manager )
cloud_integration.initialize()

# Scrape
scraper = Scraper(cloud_integration = cloud_integration, settings_manager=settings_manager )
scraper.initialize()
scraper.start()

Demos

Link to demo applications and tutorials.

Background

Developed for Jose Enriquez's Master's Thesis in Computer Engineering, CorgiBrowser aims to democratize access to web data through ethical and efficient crawling. CorgiBrowser objective is to represent a significant step in merging web crawling, cloud technologies, and data analysis. This integration enhances scalability, efficiency, and the ability to perform comprehensive data processing, establishing a new benchmark in data collection technologies.

Contributing to CorgiBrowser

Contributors are welcome! Check out the Open Issues on GitHub for starting points.

License

CorgiBrowser is released under the MIT License, promoting open and unrestricted use and contribution.

Metadata

Release files for corgibrowser 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for corgibrowser 0.1.0
File Size Uploaded Provenance Actions
corgibrowser-0.1.0.tar.gz 55.0 kB Without provenance Details for corgibrowser-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for corgibrowser 0.1.0
File Interpreter ABI Platform Actions
corgibrowser-0.1.0-py3-none-any.whl Python 3 none any Details for corgibrowser-0.1.0-py3-none-any.whl

Total release size: 127.6 kB

Release files / corgibrowser-0.1.0.tar.gz

Download URL corgibrowser-0.1.0.tar.gz
Size 55.0 kB
Tags Source
SHA-256 checksum
How to use checksums
8aa8e8c28e80bb283109d49bc4fc92f92a64c5ea34fc12356dbd99d8d8b7d51e
BLAKE2b-256 checksum
How to use checksums
d6ab775541ec51487401b640b650a9304fb2e5b9ec92827d54d5c516106680af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.4

Release files / corgibrowser-0.1.0-py3-none-any.whl

Download URL corgibrowser-0.1.0-py3-none-any.whl
Size 72.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f9de21af2afd1593d751e8a0732566ad3ac59dc62635e4aadac9a5221f61578e
BLAKE2b-256 checksum
How to use checksums
9e75f843720ff10a1d23380a8b22848de090e555a87964ddb9d2605f318aa12d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.4

Security for corgibrowser 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page