You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Summary
Introduce a modular web scraper component for the Quantum PHP Framework that supports proxy rotation, flexible data extraction, and integration with the existing HttpClient.
Use Case
This module would be useful for tasks such as:
Collecting public data from websites
Monitoring prices, content changes, or SEO elements
Automating data collection in testing or admin tools
Proposed Features
Proxy Rotation
Add a ProxyManager class to manage a list of proxies
Support:
Manual proxy configuration
Loading proxies from a file or array
Rotation rules (e.g., per request, on failure, round-robin)
Data Extraction
Allow extraction using flexible selector strategies:
CSS selectors (default)
XPath (optional)
Support reusable, modular selector definitions
HTTP Requests
Leverage the existing HttpClient component
Include common scraping-related features:
Custom headers (e.g., User-Agent)
Cookie/session support
Timeout and retry logic
Implementation Notes
This should be an optional module, not part of the core.
Follow Quantum’s DI and service patterns.
Keep components lightweight and composable.
Consider extensibility for future selector engines or proxy providers.
Out of Scope
JavaScript rendering (e.g., headless browsers like Puppeteer)
Activity
armanist commentedon Nov 5, 2024
Summary
Introduce a modular web scraper component for the Quantum PHP Framework that supports proxy rotation, flexible data extraction, and integration with the existing HttpClient.
Use Case
This module would be useful for tasks such as:
Proposed Features
Proxy Rotation
Add a ProxyManager class to manage a list of proxies
Support:
Data Extraction
HTTP Requests
Leverage the existing HttpClient component
Include common scraping-related features:
Implementation Notes
Out of Scope
Example Usage (TBD)
Related
Status
🟡 Open for discussion