157 lines
9.4 KiB
JSON
157 lines
9.4 KiB
JSON
{
|
|
"module": "omniread.html.scraper",
|
|
"content": {
|
|
"path": "omniread.html.scraper",
|
|
"docstring": "HTML scraping implementation for OmniRead.\n\nThis module provides an HTTP-based scraper for retrieving HTML documents.\nIt implements the core `BaseScraper` contract using `httpx` as the transport\nlayer.\n\nThis scraper is responsible for:\n- Fetching raw HTML bytes over HTTP(S)\n- Validating response content type\n- Attaching HTTP metadata to the returned content\n\nThis scraper is not responsible for:\n- Parsing or interpreting HTML\n- Retrying failed requests\n- Managing crawl policies or rate limiting",
|
|
"objects": {
|
|
"httpx": {
|
|
"name": "httpx",
|
|
"kind": "alias",
|
|
"path": "omniread.html.scraper.httpx",
|
|
"signature": "<bound method Alias.signature of Alias('httpx', 'httpx')>",
|
|
"docstring": null
|
|
},
|
|
"Any": {
|
|
"name": "Any",
|
|
"kind": "alias",
|
|
"path": "omniread.html.scraper.Any",
|
|
"signature": "<bound method Alias.signature of Alias('Any', 'typing.Any')>",
|
|
"docstring": null
|
|
},
|
|
"Mapping": {
|
|
"name": "Mapping",
|
|
"kind": "alias",
|
|
"path": "omniread.html.scraper.Mapping",
|
|
"signature": "<bound method Alias.signature of Alias('Mapping', 'typing.Mapping')>",
|
|
"docstring": null
|
|
},
|
|
"Optional": {
|
|
"name": "Optional",
|
|
"kind": "alias",
|
|
"path": "omniread.html.scraper.Optional",
|
|
"signature": "<bound method Alias.signature of Alias('Optional', 'typing.Optional')>",
|
|
"docstring": null
|
|
},
|
|
"Content": {
|
|
"name": "Content",
|
|
"kind": "class",
|
|
"path": "omniread.html.scraper.Content",
|
|
"signature": "<bound method Alias.signature of Alias('Content', 'omniread.core.content.Content')>",
|
|
"docstring": "Normalized representation of extracted content.\n\nA `Content` instance represents a raw content payload along with minimal\ncontextual metadata describing its origin and type.\n\nThis class is the **primary exchange format** between:\n- Scrapers\n- Parsers\n- Downstream consumers\n\nAttributes:\n raw: Raw content bytes as retrieved from the source.\n source: Identifier of the content origin (URL, file path, or logical name).\n content_type: Optional MIME type of the content, if known.\n metadata: Optional, implementation-defined metadata associated with\n the content (e.g., headers, encoding hints, extraction notes).",
|
|
"members": {
|
|
"raw": {
|
|
"name": "raw",
|
|
"kind": "attribute",
|
|
"path": "omniread.html.scraper.Content.raw",
|
|
"signature": "<bound method Alias.signature of Alias('raw', 'omniread.core.content.Content.raw')>",
|
|
"docstring": null
|
|
},
|
|
"source": {
|
|
"name": "source",
|
|
"kind": "attribute",
|
|
"path": "omniread.html.scraper.Content.source",
|
|
"signature": "<bound method Alias.signature of Alias('source', 'omniread.core.content.Content.source')>",
|
|
"docstring": null
|
|
},
|
|
"content_type": {
|
|
"name": "content_type",
|
|
"kind": "attribute",
|
|
"path": "omniread.html.scraper.Content.content_type",
|
|
"signature": "<bound method Alias.signature of Alias('content_type', 'omniread.core.content.Content.content_type')>",
|
|
"docstring": null
|
|
},
|
|
"metadata": {
|
|
"name": "metadata",
|
|
"kind": "attribute",
|
|
"path": "omniread.html.scraper.Content.metadata",
|
|
"signature": "<bound method Alias.signature of Alias('metadata', 'omniread.core.content.Content.metadata')>",
|
|
"docstring": null
|
|
}
|
|
}
|
|
},
|
|
"ContentType": {
|
|
"name": "ContentType",
|
|
"kind": "class",
|
|
"path": "omniread.html.scraper.ContentType",
|
|
"signature": "<bound method Alias.signature of Alias('ContentType', 'omniread.core.content.ContentType')>",
|
|
"docstring": "Supported MIME types for extracted content.\n\nThis enum represents the declared or inferred media type of the content\nsource. It is primarily used for routing content to the appropriate\nparser or downstream consumer.",
|
|
"members": {
|
|
"HTML": {
|
|
"name": "HTML",
|
|
"kind": "attribute",
|
|
"path": "omniread.html.scraper.ContentType.HTML",
|
|
"signature": "<bound method Alias.signature of Alias('HTML', 'omniread.core.content.ContentType.HTML')>",
|
|
"docstring": "HTML document content."
|
|
},
|
|
"PDF": {
|
|
"name": "PDF",
|
|
"kind": "attribute",
|
|
"path": "omniread.html.scraper.ContentType.PDF",
|
|
"signature": "<bound method Alias.signature of Alias('PDF', 'omniread.core.content.ContentType.PDF')>",
|
|
"docstring": "PDF document content."
|
|
},
|
|
"JSON": {
|
|
"name": "JSON",
|
|
"kind": "attribute",
|
|
"path": "omniread.html.scraper.ContentType.JSON",
|
|
"signature": "<bound method Alias.signature of Alias('JSON', 'omniread.core.content.ContentType.JSON')>",
|
|
"docstring": "JSON document content."
|
|
},
|
|
"XML": {
|
|
"name": "XML",
|
|
"kind": "attribute",
|
|
"path": "omniread.html.scraper.ContentType.XML",
|
|
"signature": "<bound method Alias.signature of Alias('XML', 'omniread.core.content.ContentType.XML')>",
|
|
"docstring": "XML document content."
|
|
}
|
|
}
|
|
},
|
|
"BaseScraper": {
|
|
"name": "BaseScraper",
|
|
"kind": "class",
|
|
"path": "omniread.html.scraper.BaseScraper",
|
|
"signature": "<bound method Alias.signature of Alias('BaseScraper', 'omniread.core.scraper.BaseScraper')>",
|
|
"docstring": "Base interface for all scrapers.\n\nA scraper is responsible ONLY for fetching raw content\n(bytes) from a source. It must not interpret or parse it.\n\nA scraper is a **stateless acquisition component** that retrieves raw\ncontent from a source and returns it as a `Content` object.\n\nScrapers define *how content is obtained*, not *what the content means*.\n\nImplementations may vary in:\n- Transport mechanism (HTTP, filesystem, cloud storage)\n- Authentication strategy\n- Retry and backoff behavior\n\nImplementations must not:\n- Parse content\n- Modify content semantics\n- Couple scraping logic to a specific parser",
|
|
"members": {
|
|
"fetch": {
|
|
"name": "fetch",
|
|
"kind": "function",
|
|
"path": "omniread.html.scraper.BaseScraper.fetch",
|
|
"signature": "<bound method Alias.signature of Alias('fetch', 'omniread.core.scraper.BaseScraper.fetch')>",
|
|
"docstring": "Fetch raw content from the given source.\n\nImplementations must retrieve the content referenced by `source`\nand return it as raw bytes wrapped in a `Content` object.\n\nArgs:\n source: Location identifier (URL, file path, S3 URI, etc.)\n metadata: Optional hints for the scraper (headers, auth, etc.)\n\nReturns:\n Content object containing raw bytes and metadata.\n - Raw content bytes\n - Source identifier\n - Optional metadata\n\nRaises:\n Exception: Retrieval-specific errors as defined by the implementation."
|
|
}
|
|
}
|
|
},
|
|
"HTMLScraper": {
|
|
"name": "HTMLScraper",
|
|
"kind": "class",
|
|
"path": "omniread.html.scraper.HTMLScraper",
|
|
"signature": "<bound method Class.signature of Class('HTMLScraper', 26, 134)>",
|
|
"docstring": "Base HTML scraper using httpx.\n\nThis scraper retrieves HTML documents over HTTP(S) and returns them\nas raw content wrapped in a `Content` object.\n\nFetches raw bytes and metadata only.\nThe scraper:\n- Uses `httpx.Client` for HTTP requests\n- Enforces an HTML content type\n- Preserves HTTP response metadata\n\nThe scraper does not:\n- Parse HTML\n- Perform retries or backoff\n- Handle non-HTML responses",
|
|
"members": {
|
|
"content_type": {
|
|
"name": "content_type",
|
|
"kind": "attribute",
|
|
"path": "omniread.html.scraper.HTMLScraper.content_type",
|
|
"signature": null,
|
|
"docstring": null
|
|
},
|
|
"validate_content_type": {
|
|
"name": "validate_content_type",
|
|
"kind": "function",
|
|
"path": "omniread.html.scraper.HTMLScraper.validate_content_type",
|
|
"signature": "<bound method Function.signature of Function('validate_content_type', 71, 94)>",
|
|
"docstring": "Validate that the HTTP response contains HTML content.\n\nArgs:\n response: HTTP response returned by `httpx`.\n\nRaises:\n ValueError: If the `Content-Type` header is missing or does not\n indicate HTML content."
|
|
},
|
|
"fetch": {
|
|
"name": "fetch",
|
|
"kind": "function",
|
|
"path": "omniread.html.scraper.HTMLScraper.fetch",
|
|
"signature": "<bound method Function.signature of Function('fetch', 96, 134)>",
|
|
"docstring": "Fetch an HTML document from the given source.\n\nArgs:\n source: URL of the HTML document.\n metadata: Optional metadata to be merged into the returned content.\n\nReturns:\n A `Content` instance containing:\n - Raw HTML bytes\n - Source URL\n - HTML content type\n - HTTP response metadata\n\nRaises:\n httpx.HTTPError: If the HTTP request fails.\n ValueError: If the response is not valid HTML."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |