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], AbstractComplexExtractor

Extract data by cooperating with extractor.

Parameters:
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: Field

Extract 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:

data_extractor.core.AbstractSimpleExtractor