Skip to main content

A powerful Python tool to scrape VC investor data from VCSheet.com with Odoo CRM integration

Project description

VC Investor Scraper

PyPI version Python 3.7+ License: MIT

A powerful Python tool to scrape investor data from VCSheet.com and export to CSV format or upload directly to Odoo CRM via API.

Perfect for startups, investment firms, and business development teams looking to build comprehensive investor databases.

🚀 Features

  • 🔍 Smart Keyword Filtering: Search for investors by keywords (e.g., "fintech", "AI", "marketing")
  • 📊 Complete Data Extraction: Extracts names, companies, emails, social media links, investment focus, and stages
  • 📁 Multiple Export Options:
    • Standard CSV format
    • Odoo CRM-compatible CSV format
    • Direct Odoo API upload
  • 🎯 Odoo Integration: Upload leads directly to your Odoo CRM with team and user assignments
  • 🔄 Full Pagination: Scrapes all pages (35+ pages, 1000+ investors)
  • 🛡️ Robust Error Handling: Handles network issues, parsing errors, and API failures gracefully
  • Rate Limiting: Built-in delays to respect website resources
  • 🌐 Cross-Platform: Works on Windows, macOS, and Linux

📦 Installation

From PyPI (Recommended)

pip install vc-investor-scraper

From Source

git clone https://github.com/antonpavlenko/vc-investor-scraper.git
cd vc-investor-scraper
pip install -e .

Requirements

  • Python 3.7+
  • Internet connection
  • Optional: Odoo instance for CRM integration

⚡ Quick Start

Command Line Interface

After installation, you can use the tool directly from the command line:

# Export all investors to CSV
vc-investor-scraper -o all_investors.csv

# Export investors with specific keywords
vc-investor-scraper -k "fintech" "AI" -o fintech_ai_investors.csv

# Export in Odoo-compatible format
vc-investor-scraper -k "marketing" -o marketing_investors.csv --odoo

Python API

from vcsheet_scraper import VCSheetScraper

# Create scraper instance
scraper = VCSheetScraper()

# Get all investors
investors = scraper.get_investors()

# Get investors with keywords
ai_investors = scraper.get_investors(keywords=["AI", "machine learning"])

# Save to CSV
scraper.save_to_csv(investors, "investors.csv")

Direct Odoo Upload

# Upload to Odoo CRM
vc-investor-scraper -k "AI research" --odoo-upload \
  --odoo-url "https://your-odoo.com" \
  --odoo-db "your_database" \
  --odoo-user "your_username" \
  --odoo-password "your_password" \
  --odoo-team "Your Sales Team" \
  --odoo-user-assign "Your Name"

📋 Usage Examples

1. Marketing Investors

vc-investor-scraper -k "marketing" -o marketing_investors.csv --odoo

2. AI & Machine Learning Investors

vc-investor-scraper -k "AI" "machine learning" -o ai_ml_investors.csv

3. Early Stage Investors

vc-investor-scraper -k "seed" "pre-seed" -o early_stage_investors.csv

4. Fintech Investors with Geographic Focus

vc-investor-scraper -k "fintech" "payments" "blockchain" -o fintech_investors.csv

5. Upload to Odoo with Team Assignment

vc-investor-scraper -k "fintech" --odoo-upload \
  --odoo-url "https://your-company.odoo.com" \
  --odoo-db "production" \
  --odoo-user "admin" \
  --odoo-password "your_api_key" \
  --odoo-model "crm.lead" \
  --odoo-stage "New" \
  --odoo-team "Investment Team" \
  --odoo-user-assign "john.doe@company.com"

6. Python Script Integration

from vcsheet_scraper import VCSheetScraper, OdooAPI

# Initialize scraper
scraper = VCSheetScraper()

# Get fintech investors
fintech_investors = scraper.get_investors(keywords=["fintech", "payments"])

# Upload to Odoo
odoo = OdooAPI("https://your-odoo.com", "db", "user", "password")
odoo.authenticate()
lead_ids = odoo.create_leads(fintech_investors, default_team="Sales Team")

print(f"Created {len(lead_ids)} leads in Odoo")

Command Line Options

Basic Options

  • -k, --keywords: Keywords to filter investors (e.g., 'fintech', 'AI', 'seed')
  • -o, --output: Output CSV filename (optional when using --odoo-upload)
  • --odoo: Generate Odoo CRM leads compatible CSV format
  • --log-level: Set logging level (DEBUG, INFO, WARNING, ERROR)

Odoo API Options

  • --odoo-upload: Upload data directly to Odoo via API
  • --odoo-url: Odoo server URL (e.g., 'https://your-odoo.com')
  • --odoo-db: Odoo database name
  • --odoo-user: Odoo username
  • --odoo-password: Odoo password or API key
  • --odoo-model: Odoo model ('crm.lead' or 'res.partner', default: crm.lead)
  • --odoo-stage: Default pipeline stage for leads
  • --odoo-team: Default sales team to assign leads to
  • --odoo-user-assign: Default user to assign leads to

Output Formats

Standard CSV Format

name,company,website,description,focus,location,stage,email,linkedin,twitter,crunchbase,youtube,check_size
John Doe,Acme Ventures,https://acme.vc,Bio and description,AI,San Francisco,Seed,john@acme.vc,linkedin.com/in/johndoe,twitter.com/johndoe,crunchbase.com/person/john-doe,,

Odoo-Compatible CSV Format

External ID,Name,Company Name,Contact Name,Email,Job Position,Phone,Mobile,Street,Street2,City,State,Zip,Country,Website,Notes
1,John Doe,Acme Ventures,John Doe,john@acme.vc,Investor,,,,,,,,,https://acme.vc,"Company: Acme Ventures; Focus Areas: AI; Bio: ...; LinkedIn: ...; Source: VCSheet.com"

Odoo Integration

Setting Up Odoo API Access

  1. Get API Key (recommended):

    • Log into Odoo → Settings → Users & Companies → Users
    • Click your user → Preferences tab → API Keys section
    • Create new API key
  2. Or use regular password (less secure)

Odoo Configuration Requirements

  • CRM module must be installed
  • User permissions: Create/write access to CRM leads
  • Sales teams: Must exist if using --odoo-team
  • Users: Must exist if using --odoo-user-assign

What Gets Created in Odoo

For CRM Leads (crm.lead):

  • Lead name: Investor's name (without "Investor:" prefix)
  • Contact name, company, email, website
  • Comprehensive description with bio, focus areas, investment stages
  • All social media links in description
  • UTM source tracking ("VCSheet.com")
  • Optional stage, team, and user assignment

📊 Data Extracted

For each investor, the scraper extracts:

  • Basic Info: Name, company/fund, email, website
  • Professional: Investment focus areas, stages, bio/description
  • Social Media: LinkedIn, Twitter, Crunchbase, YouTube profiles
  • Metadata: Source tracking, external IDs

Sample Data Output

name,company,website,description,focus,stage,email,linkedin,twitter
John Doe,Acme Ventures,https://acme.vc,"Partner at Acme Ventures focusing on early-stage startups","AI, SaaS","Seed, Series A",john@acme.vc,linkedin.com/in/johndoe,twitter.com/johndoe

🎯 Use Cases

  • Startup Fundraising: Build targeted investor lists for your industry
  • Business Development: Identify potential partners and advisors
  • Market Research: Analyze investment trends and focus areas
  • CRM Integration: Automatically populate your sales pipeline
  • Lead Generation: Create comprehensive prospect databases

Error Handling

The scraper includes robust error handling for:

  • Network connectivity issues
  • Website structure changes
  • Odoo API authentication failures
  • Invalid search parameters
  • Rate limiting and timeouts

Rate Limiting

  • Built-in delays between page requests (1-2 seconds)
  • Respectful scraping practices
  • Configurable timeouts and retries

🤝 Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Add tests if applicable
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. Submit a pull request

Development Setup

git clone https://github.com/antonpavlenko/vc-investor-scraper.git
cd vc-investor-scraper
pip install -e ".[dev]"

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

⚠️ Disclaimer

This tool is for educational and business purposes. Please respect VCSheet.com's terms of service and use responsibly. The authors are not responsible for any misuse of this tool.

🆘 Support

🏆 Acknowledgments

  • Built for the startup and investment community
  • Inspired by the need for better investor discovery tools
  • Thanks to VCSheet.com for providing comprehensive investor data

Made with ❤️ for the startup ecosystem

Star ⭐ this repo if you find it useful!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vc_investor_scraper-1.0.0.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vc_investor_scraper-1.0.0-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file vc_investor_scraper-1.0.0.tar.gz.

File metadata

  • Download URL: vc_investor_scraper-1.0.0.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for vc_investor_scraper-1.0.0.tar.gz
Algorithm Hash digest
SHA256 70204064d0262ca63f1538b99de9ebbf1891fe2519ac4ebb0d00e0231563a973
MD5 d93c859d8f4ea14eb50c0470818c640f
BLAKE2b-256 618ec0f63f202d19ac0d23644a12385c3c45dcaa5e582989bd477b15a8160bc3

See more details on using hashes here.

File details

Details for the file vc_investor_scraper-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for vc_investor_scraper-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 31619ec84fa2dfc87c84e5510d1bde45883f1c6c0b5d3e6ff18f51cae11e1cf9
MD5 b533008acac57220063b3319834e70df
BLAKE2b-256 01c0e851fa260b44a3450c55730a75199a702ca0202c6c7ba31a03eef264a875

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page