Options for scraping operations.
| 649 | |
| 650 | |
| 651 | class ScrapeOptions(BaseModel): |
| 652 | """Options for scraping operations.""" |
| 653 | |
| 654 | formats: Optional[Union["ScrapeFormats", List[FormatOption]]] = None |
| 655 | headers: Optional[Dict[str, str]] = None |
| 656 | include_tags: Optional[List[str]] = None |
| 657 | exclude_tags: Optional[List[str]] = None |
| 658 | only_main_content: Optional[bool] = None |
| 659 | timeout: Optional[int] = None |
| 660 | wait_for: Optional[int] = None |
| 661 | mobile: Optional[bool] = None |
| 662 | parsers: Optional[Union[List[str], List[Union[str, "PDFParser"]]]] = None |
| 663 | actions: Optional[ |
| 664 | List[ |
| 665 | Union[ |
| 666 | "WaitAction", |
| 667 | "ScreenshotAction", |
| 668 | "ClickAction", |
| 669 | "WriteAction", |
| 670 | "PressAction", |
| 671 | "ScrollAction", |
| 672 | "ScrapeAction", |
| 673 | "ExecuteJavascriptAction", |
| 674 | "PDFAction", |
| 675 | ] |
| 676 | ] |
| 677 | ] = None |
| 678 | location: Optional["Location"] = None |
| 679 | skip_tls_verification: Optional[bool] = None |
| 680 | remove_base64_images: Optional[bool] = None |
| 681 | fast_mode: Optional[bool] = None |
| 682 | use_mock: Optional[str] = None |
| 683 | block_ads: Optional[bool] = None |
| 684 | proxy: Optional[Literal["basic", "stealth", "enhanced", "auto"]] = None |
| 685 | max_age: Optional[int] = None |
| 686 | min_age: Optional[int] = None |
| 687 | store_in_cache: Optional[bool] = None |
| 688 | lockdown: Optional[bool] = None |
| 689 | redact_pii: Optional[Union[bool, RedactPIIOptions]] = Field( |
| 690 | default=None, alias="redactPII" |
| 691 | ) |
| 692 | profile: Optional[Dict[str, Any]] = None |
| 693 | integration: Optional[str] = None |
| 694 | |
| 695 | model_config = {"populate_by_name": True} |
| 696 | |
| 697 | @field_validator("formats") |
| 698 | @classmethod |
| 699 | def validate_formats(cls, v): |
| 700 | """Validate and normalize formats input.""" |
| 701 | if v is None: |
| 702 | return v |
| 703 | if isinstance(v, ScrapeFormats): |
| 704 | return v |
| 705 | if isinstance(v, list): |
| 706 | return v |
| 707 | raise ValueError( |
| 708 | f"Invalid formats type: {type(v)}. Expected ScrapeFormats or List[FormatOption]" |
no outgoing calls
searching dependent graphs…