Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions src/scrapingbee_cli/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
"""ScrapingBee CLI - Command-line client for the ScrapingBee API."""

import platform
import sys

__version__ = "1.2.2"


def user_agent() -> str:
"""Build a descriptive User-Agent string for API requests.

Format: scrapingbee-cli/1.2.2 Python/3.12.0 (Darwin arm64)
"""
py = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
os_info = f"{platform.system()} {platform.machine()}"
return f"scrapingbee-cli/{__version__} Python/{py} ({os_info})"
3 changes: 2 additions & 1 deletion src/scrapingbee_cli/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import aiohttp
import certifi

from . import user_agent
from .config import BASE_URL


Expand Down Expand Up @@ -45,7 +46,7 @@ async def __aenter__(self) -> Client:
self._session = aiohttp.ClientSession(
connector=connector,
timeout=timeout,
headers={"User-Agent": "ScrapingBee/CLI"},
headers={"User-Agent": user_agent()},
)
return self

Expand Down
3 changes: 2 additions & 1 deletion src/scrapingbee_cli/crawl.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from scrapy.utils.project import get_project_settings
from scrapy_scrapingbee import ScrapingBeeRequest

from . import user_agent
from .batch import _batch_subdir_for_extension, extension_for_crawl

if TYPE_CHECKING:
Expand Down Expand Up @@ -487,7 +488,7 @@ async def _fetch() -> bytes:
] or [loc.text.strip() for loc in root.findall(".//url/loc") if loc.text and loc.text.strip()]


USER_AGENT_CLI = "ScrapingBee/CLI"
USER_AGENT_CLI = user_agent()


def default_crawl_output_dir() -> str:
Expand Down
Loading