item – Complex Extractor for data extracting.¶
- class data_extractor.item.Field(extractor: AbstractSimpleExtractor | None = None, name: str | None = None, default: Any = sentinel, is_many: bool = False, type: Type[RV] | None = None, convertor: Callable[[Any], RV] | None = None)¶
Bases:
Generic[RV],AbstractComplexExtractorExtract data by cooperating with extractor.
- Parameters:
extractor (
data_extractor.core.AbstractSimpleExtractor) – The object for data extractingname (str, optional) – Optional parameter for special field name.
default (Any) – Default value when not found. Default:
data_extractor.utils.sentinel.is_many (bool) – Indicate the data which extractor extracting is more than one.
- Raises:
ValueError – Invalid SimpleExtractor.
ValueError – Can’t both set default and is_manay=True.
- extract(element: Any) RV | List[RV]¶
Extract the wanted data.
- Parameters:
element (Any) – The target data node element.
- Returns:
Data or subelement.
- Return type:
Any
- Raises:
ExtractError – Thrown by extractor extracting wrong data.
- class data_extractor.item.Item(extractor=None, name=None, default=sentinel, is_many=False, type=None, convertor=None)¶
Bases:
FieldExtract data by cooperating with extractors, fields and items.
- extract(element: Any) RV | List[RV]¶
Extract the wanted data.
- Parameters:
element (Any) – The target data node element.
- Returns:
Data or subelement.
- Return type:
Any
- Raises:
ExtractError – Thrown by extractor extracting wrong data.
- classmethod field_names() Iterator[str]¶
Iterate all Item or Field type attributes’ name.
- simplify() AbstractSimpleExtractor¶
Create an extractor that has compatible API like SimpleExtractor’s.
- Returns:
A simple extractor.
- Return type: