Monitoro API Client
This is a Python client for the Monitoro API, which allows you to extract data from websites using Monitoro's scraping capabilities and powered by your own browser - no need to worry about renting servers, proxies, or solving captchas.
Installation
You can install the Monitoro API client using pip:
pip install monitoro
Usage
Here are some examples of how to use the Monitoro API client:
Basic Usage
from monitoro import Monitoro, MonitoroAPIError
# Initialize the client with your API token
client = Monitoro("your_api_token_here")
try:
# Extract data from a single URL using a specific monitor
for url, result in client.extract(monitor="monitor_id", url="https://example.com"):
print(f"Extracted data from {url}:")
print(result)
# Extract data from multiple URLs using a specific monitor
urls = ["https://example.com", "https://example.org", "https://example.net"]
for url, result in client.extract(monitor="monitor_id", urls=urls):
print(f"Extracted data from {url}:")
print(result)
# Extract data using a template
for url, result in client.extract(template="template_id", urls=["https://example.com"]):
print(f"Extracted data from {url} using template:")
print(result)
# Extract data using selectors
for url, result in client.extract(selectors={"title": "h1"}, urls=["https://example.com"]):
print(f"Extracted data from {url} using selectors:")
print(result)
except MonitoroAPIError as e:
print(f"An error occurred: {e}")
Using MonitoroSwarm for Distributed Extraction
from monitoro import MonitoroSwarm, MonitoroAPIError
# Initialize the swarm client with multiple API tokens
swarm = MonitoroSwarm(["token1", "token2", "token3"])
try:
urls = ["https://example.com", "https://example.org", "https://example.net"]
for url, result in swarm.extract(template="template_id", urls=urls):
print(f"Extracted data from {url}:")
print(result)
for url, result in swarm.extract(selectors={"title": "h1"}, urls=urls):
print(f"Extracted data from {url}:")
print(result)
except MonitoroAPIError as e:
print(f"An error occurred: {e}")
API Reference
Monitoro(token)
Creates a new Monitoro API client instance.
token(str): Your Monitoro API token.
Monitoro.extract(monitor_id=None, template_id=None, selectors=None, url=None, urls=None, no_ingest=False)
Extracts data from URLs using a specific monitor's settings or a template.
-
Only one of these parameters should be provided at a time.
monitor_id(str, optional): The ID of the monitor to use for extraction.template_id(str, optional): The ID of the template to use for extraction.selectors(dict, optional): The selectors to use for extraction.
-
url(str, optional): The URL to extract data from. -
urls(list, optional): The list of URLs to extract data from. -
no_ingest(bool, optional): If True, skip running automations. Defaults to False. Only valid withmonitor_id.
Returns a generator that yields (url, data) tuples for successful extractions, followed by a list of (url, error) tuples for failed extractions.
MonitoroSwarm(tokens)
Creates a new Monitoro Swarm client instance for distributed extraction.
tokens(list): A list of Monitoro API tokens.
The MonitoroSwarm class has the same extract method as the Monitoro class, but it distributes the workload across multiple API tokens.
Calling extract with monitor_id is not supported in swarm mode, and no_ingest is always set to false in this mode.
Error Handling
The client raises specific exceptions for different error scenarios:
BadRequestError: For 400 Bad Request errors (e.g., missing URL or malformed request)MonitorNotFoundError: For 404 Monitor Not Found errorsServerError: For 500 Server Error during data extractionMonitoroAPIError: Base exception for all other API errors
You can catch these exceptions to handle errors in your code.
License
This client is licensed under the MIT License.
Metadata
Release files for monitoro 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| monitoro-0.2.3.tar.gz | 5.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| monitoro-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.2 kB
Release files / monitoro-0.2.3.tar.gz
| Download URL | monitoro-0.2.3.tar.gz |
|---|---|
| Size | 5.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3707311ae6e71c4961f8df3a373172c40701144e5d392c748de69f8f23c2fd11
|
|
BLAKE2b-256 checksum How to use checksums |
c1f1574cf478f38ea0212269a8685ef8544883cb619f10d0e72a02715fc5836c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.11.9
|
Release files / monitoro-0.2.3-py3-none-any.whl
| Download URL | monitoro-0.2.3-py3-none-any.whl |
|---|---|
| Size | 5.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3bf9f0e79a7ae49a42fc4e7c39541287ade9dd478d05fe9f238eba8eeffaefc2
|
|
BLAKE2b-256 checksum How to use checksums |
ab840b4cefde8a5ee1cd573e857e95196edaf36658eea3a32bb1dd6111dad350
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.11.9
|