Skip to content

Releases: brightdata/sdk-python

v1.1.0: Web Crawling, Content Parsing & Browser Automation

Choose a tag to compare

@Idanvilenski Idanvilenski released this 01 Sep 14:31

New Features

🕷️ Web Crawling

  • crawl() function for discovering and scraping multiple pages from websites
  • Advanced filtering with regex patterns for URL inclusion/exclusion
  • Configurable crawl depth and sitemap handling
  • Custom output schema support

🔍 Content Parsing

  • parse_content() function for extracting useful data from API responses
  • Support for text extraction, link discovery, and image URL collection
  • Handles both JSON responses and raw HTML content
  • Structured data extraction from various content formats

🌐 Browser Automation

  • connect_browser() function for Playwright/Selenium integration
  • WebSocket endpoint generation for scraping browser connections
  • Support for multiple browser automation tools (Playwright, Puppeteer, Selenium)
  • Seamless authentication with Bright Data's browser service

Improvements

📡 Better Async Handling

  • Enhanced download_snapshot() with improved 202 status code handling
  • Friendly status messages instead of exceptions for pending snapshots
  • Better user experience for asynchronous data processing

🔧 Robust Error Handling

  • Fixed zone creation error handling with proper exception propagation
  • Added retry logic for network failures and temporary errors
  • Improved zone management reliability

🐍 Python Support Update

  • Updated to support Python 3.8+ (removed Python 3.7)
  • Updated CI/CD pipeline for modern Python versions
  • Added BeautifulSoup4 as core dependency

Dependencies

  • Added: beautifulsoup4>=4.9.0 for content parsing
  • Updated: Python compatibility to >=3.8

Examples

New example files demonstrate the enhanced functionality:

  • examples/crawl_example.py - Web crawling usage
  • examples/browser_connection_example.py - Browser automation setup
  • examples/parse_content_example.py - Content parsing workflows

Release v1.0.7: LinkedIn Integration & Enhanced APIs

Choose a tag to compare

@Idanvilenski Idanvilenski released this 27 Aug 15:14

🚀 Major Features

LinkedIn Data Integration

  • New scrape_linkedin class: Comprehensive LinkedIn data scraping for profiles, companies, jobs, and posts
  • New search_linkedin class: Advanced LinkedIn content discovery with keyword and URL-based search
  • Production-ready examples: Ready-to-use examples for all LinkedIn functionality

Enhanced ChatGPT API

  • Renamed to search_chatGPT: More intuitive naming for ChatGPT interactions
  • Sync/Async support: Choose between immediate results or background processing
  • Improved NDJSON parsing: Better handling of multi-response data

Improved Architecture

  • Modular design: Separated download functionality into dedicated module
  • Better code organization: Specialized API modules for different services
  • Production optimizations: Cleaner code with improved performance

🔧 API Enhancements

New LinkedIn Methods

# Scrape LinkedIn data
client.scrape_linkedin.profiles(urls)
client.scrape_linkedin.companies(urls)
client.scrape_linkedin.jobs(urls)
client.scrape_linkedin.posts(urls)

# Search LinkedIn content
client.search_linkedin.profiles(first_name, last_name)
client.search_linkedin.jobs(location="Paris", keyword="developer")
client.search_linkedin.posts(company_url="https://linkedin.com/company/bright-data")

Enhanced ChatGPT API

# Synchronous (immediate results)
result = client.search_chatGPT(prompt="Your question", sync=True)

# Asynchronous (background processing)
result = client.search_chatGPT(prompt="Your question", sync=False)

🛠️ Technical Improvements

  • Better error handling: Enhanced validation and error messages
  • Backward compatibility: All existing code continues to work
  • Performance optimizations: Faster processing and reduced memory usage
  • Production-ready code: Clean, efficient, and maintainable codebase

📝 Breaking Changes

  • scrape_chatGPT() renamed to search_chatGPT() (maintains same functionality)
  • Added sync parameter to ChatGPT API (defaults to True)

🐛 Bug Fixes

  • Fixed NDJSON response parsing for multi-line JSON data
  • Improved parameter validation across all APIs
  • Enhanced timeout handling for long-running requests

📚 Documentation

  • Updated examples with new LinkedIn functionality
  • Enhanced docstrings for all new methods
  • Added comprehensive usage examples

Release v1.0.6

Choose a tag to compare

@Idanvilenski Idanvilenski released this 24 Aug 14:03

Version 1.0.6 - Changed default data_format to html for better output formatting

Release v1.0.5

Choose a tag to compare

@Idanvilenski Idanvilenski released this 21 Aug 12:48

Version 1.0.5 release

Release v1.0.4

Choose a tag to compare

@Idanvilenski Idanvilenski released this 21 Aug 12:32

What's New

  • New JSON Parsing Feature: Added parse parameter to search function
    • When parse=True, automatically appends &brd_json=1 to search URLs
    • Enables structured JSON responses from search engines
    • Defaults to False for backward compatibility

Usage Example

from brightdata import bdclient

client = bdclient(api_token="your-token")

# Enable JSON parsing
results = client.search(
    query="pizza restaurants", 
    search_engine="google", 
    parse=True
)

Changes

  • Add parse parameter to search() method in both API and client
  • Update documentation and examples
  • Add comprehensive unit tests
  • Maintain backward compatibility

v1.0.3

Choose a tag to compare

@Idanvilenski Idanvilenski released this 19 Aug 13:31

What's Changed

  • Fixed CI/CD pipeline issues with deprecated GitHub Actions
  • Enhanced country code validation flexibility
  • Improved zone management and testing coverage

Full Changelog: https://github.com/brightdata/bright-data-sdk-python/blob/main/CHANGELOG.md

v1.0.2

Choose a tag to compare

@Idanvilenski Idanvilenski released this 18 Aug 09:26

What's New in v1.0.2

🔧 Improvements

Dynamic version reading from package metadata for better consistency
Enhanced user-agent handling with automatic version synchronization
Improved error handling and validation throughout the SDK

🧪 Testing Enhancements

Comprehensive test suite with proper mocking to eliminate API token
requirements
Added PyPI package integration testing in CI/CD pipeline
Better test coverage for client initialization and validation logic

📦 Package Management

Fixed package name consistency in pyproject.toml
Streamlined version management across all configuration files
Enhanced GitHub Actions workflow for automated testing and publishing

🚀 Developer Experience

Tests now run without requiring real API tokens
Improved documentation in test files
Better CI/CD pipeline with both local and PyPI package validation