Recipe API
The Recipe class is the central component of SpiderChef, representing a complete web scraping workflow.
Core Recipe Class
spiderchef.recipe.Recipe
Bases: BaseModel
Source code in spiderchef/recipe.py
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | |
session
async
property
Curl-cffi Session used through all steps.
close()
async
convert_step_dicts(value)
classmethod
Convert step dictionaries to Step instances before model creation.
cook(**kwargs)
async
Execute all steps in the recipe sequentially, passing the output of each step to the next.
This method initializes the recipe's variables (including any provided via kwargs and the base_url), then iterates through each step in the recipe. Each step is executed in order, with the output of the previous step passed as input to the next. Both synchronous and asynchronous steps are supported.
If an exception occurs during execution, the session is closed and the exception is re-raised. The session is always closed at the end of execution.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs
|
dict[str, Any]
|
Additional variables to inject into the recipe's variable context. |
{}
|
Returns:
| Type | Description |
|---|---|
Any
|
The output of the final step in the recipe. |
Raises:
| Type | Description |
|---|---|
Exception
|
Any exception raised by a step during execution. |
Source code in spiderchef/recipe.py
from_yaml(file_path)
classmethod
Generate a Recipe object from a yaml file.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
file_path
|
str
|
String file path to recipe yaml. |
required |
Returns:
| Type | Description |
|---|---|
'Recipe'
|
The Initialised Recipe object. |