Releases: brightdata/sdk-python
Release list
v1.1.0: Web Crawling, Content Parsing & Browser Automation
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 usageexamples/browser_connection_example.py- Browser automation setupexamples/parse_content_example.py- Content parsing workflows
Release v1.0.7: LinkedIn Integration & Enhanced APIs
🚀 Major Features
LinkedIn Data Integration
- New
scrape_linkedinclass: Comprehensive LinkedIn data scraping for profiles, companies, jobs, and posts - New
search_linkedinclass: 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 tosearch_chatGPT()(maintains same functionality)- Added
syncparameter to ChatGPT API (defaults toTrue)
🐛 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
Version 1.0.6 - Changed default data_format to html for better output formatting
Release v1.0.5
Release v1.0.4
What's New
- New JSON Parsing Feature: Added
parseparameter to search function- When
parse=True, automatically appends&brd_json=1to search URLs - Enables structured JSON responses from search engines
- Defaults to
Falsefor backward compatibility
- When
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
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
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