crawlora 1.9.0.dev1__tar.gz → 1.10.0.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {crawlora-1.9.0.dev1/crawlora.egg-info → crawlora-1.10.0.dev1}/PKG-INFO +1 -1
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora/client.py +1 -1
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora/client.pyi +265 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora/operations.py +87 -2
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1/crawlora.egg-info}/PKG-INFO +1 -1
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/docs/operations.md +5 -1
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/pyproject.toml +1 -1
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/tests/test_client.py +2 -2
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/LICENSE +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/MANIFEST.in +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/README.md +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora/__init__.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora/_pagination.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora/_transport_sync.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora/async_client.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora/py.typed +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora.egg-info/SOURCES.txt +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora.egg-info/dependency_links.txt +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora.egg-info/requires.txt +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/crawlora.egg-info/top_level.txt +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/docs/recipes.md +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/examples/async_search.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/examples/bing_search.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/examples/paginate.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/examples/youtube_transcript.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/setup.cfg +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/tests/test_async_httpx.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/tests/test_examples.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/tests/test_v14_features.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/tests/test_v15_features.py +0 -0
- {crawlora-1.9.0.dev1 → crawlora-1.10.0.dev1}/tests/test_w2_features.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crawlora
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.10.0.dev1
|
|
4
4
|
Summary: Official Python SDK for the Crawlora web-scraping API: typed grouped and dynamic operation calls for every public endpoint, with retries, pagination, hooks, and an async client.
|
|
5
5
|
Author: Crawlora
|
|
6
6
|
License-Expression: MIT
|
|
@@ -20,7 +20,7 @@ from ._transport_sync import KeepAliveTransport
|
|
|
20
20
|
from .operations import GROUPS, OPERATIONS
|
|
21
21
|
|
|
22
22
|
DEFAULT_BASE_URL = "https://api.crawlora.net/api/v1"
|
|
23
|
-
VERSION = "1.
|
|
23
|
+
VERSION = "1.10.0-sdk.1"
|
|
24
24
|
DEFAULT_USER_AGENT = f"crawlora-python-sdk/{VERSION}"
|
|
25
25
|
DEFAULT_MAX_RETRY_DELAY = 30.0
|
|
26
26
|
DEFAULT_RETRY_STATUSES = (408, 409, 425, 429)
|
|
@@ -2590,6 +2590,33 @@ ModelContactContactResponseDoc = TypedDict('ModelContactContactResponseDoc', {
|
|
|
2590
2590
|
'msg': NotRequired[str],
|
|
2591
2591
|
}, total=False)
|
|
2592
2592
|
|
|
2593
|
+
ModelDatasetsAirbnbMarketFacetResponse = TypedDict('ModelDatasetsAirbnbMarketFacetResponse', {
|
|
2594
|
+
'dataset': NotRequired[str],
|
|
2595
|
+
'facet': NotRequired[str],
|
|
2596
|
+
'items': NotRequired[list[ModelEsAirbnbMarketFacetItem]],
|
|
2597
|
+
}, total=False)
|
|
2598
|
+
|
|
2599
|
+
ModelDatasetsAirbnbMarketNearbyResponse = TypedDict('ModelDatasetsAirbnbMarketNearbyResponse', {
|
|
2600
|
+
'cells': NotRequired[list[ModelEsAirbnbDensityCell]],
|
|
2601
|
+
'dataset': NotRequired[str],
|
|
2602
|
+
'lat': NotRequired[float],
|
|
2603
|
+
'lon': NotRequired[float],
|
|
2604
|
+
'precision': NotRequired[int],
|
|
2605
|
+
'radius_m': NotRequired[int],
|
|
2606
|
+
'total': NotRequired[int],
|
|
2607
|
+
}, total=False)
|
|
2608
|
+
|
|
2609
|
+
ModelDatasetsAirbnbMarketSearchResponse = TypedDict('ModelDatasetsAirbnbMarketSearchResponse', {
|
|
2610
|
+
'dataset': NotRequired[str],
|
|
2611
|
+
'group_by': NotRequired[str],
|
|
2612
|
+
'items': NotRequired[list[ModelEsAirbnbMarketCell]],
|
|
2613
|
+
'min_listings': NotRequired[int],
|
|
2614
|
+
'page': NotRequired[int],
|
|
2615
|
+
'page_size': NotRequired[int],
|
|
2616
|
+
'sort': NotRequired[str],
|
|
2617
|
+
'total': NotRequired[int],
|
|
2618
|
+
}, total=False)
|
|
2619
|
+
|
|
2593
2620
|
ModelDatasetsAppsSearchResponse = TypedDict('ModelDatasetsAppsSearchResponse', {
|
|
2594
2621
|
'dataset': NotRequired[str],
|
|
2595
2622
|
'items': NotRequired[list[ModelEsAppRecord]],
|
|
@@ -2668,6 +2695,30 @@ ModelDatasetsReviewsSearchResponse = TypedDict('ModelDatasetsReviewsSearchRespon
|
|
|
2668
2695
|
'total': NotRequired[int],
|
|
2669
2696
|
}, total=False)
|
|
2670
2697
|
|
|
2698
|
+
ModelDatasetsAirbnbMarketResponseDoc = TypedDict('ModelDatasetsAirbnbMarketResponseDoc', {
|
|
2699
|
+
'code': NotRequired[int],
|
|
2700
|
+
'data': NotRequired[ModelEsAirbnbMarketDetail],
|
|
2701
|
+
'msg': NotRequired[str],
|
|
2702
|
+
}, total=False)
|
|
2703
|
+
|
|
2704
|
+
ModelDatasetsAirbnbMarketsFacetResponseDoc = TypedDict('ModelDatasetsAirbnbMarketsFacetResponseDoc', {
|
|
2705
|
+
'code': NotRequired[int],
|
|
2706
|
+
'data': NotRequired[ModelDatasetsAirbnbMarketFacetResponse],
|
|
2707
|
+
'msg': NotRequired[str],
|
|
2708
|
+
}, total=False)
|
|
2709
|
+
|
|
2710
|
+
ModelDatasetsAirbnbMarketsNearbyResponseDoc = TypedDict('ModelDatasetsAirbnbMarketsNearbyResponseDoc', {
|
|
2711
|
+
'code': NotRequired[int],
|
|
2712
|
+
'data': NotRequired[ModelDatasetsAirbnbMarketNearbyResponse],
|
|
2713
|
+
'msg': NotRequired[str],
|
|
2714
|
+
}, total=False)
|
|
2715
|
+
|
|
2716
|
+
ModelDatasetsAirbnbMarketsSearchResponseDoc = TypedDict('ModelDatasetsAirbnbMarketsSearchResponseDoc', {
|
|
2717
|
+
'code': NotRequired[int],
|
|
2718
|
+
'data': NotRequired[ModelDatasetsAirbnbMarketSearchResponse],
|
|
2719
|
+
'msg': NotRequired[str],
|
|
2720
|
+
}, total=False)
|
|
2721
|
+
|
|
2671
2722
|
ModelDatasetsAppsSearchResponseDoc = TypedDict('ModelDatasetsAppsSearchResponseDoc', {
|
|
2672
2723
|
'code': NotRequired[int],
|
|
2673
2724
|
'data': NotRequired[ModelDatasetsAppsSearchResponse],
|
|
@@ -2922,6 +2973,58 @@ ModelEbaySellerShopResponseDoc = TypedDict('ModelEbaySellerShopResponseDoc', {
|
|
|
2922
2973
|
'msg': NotRequired[Any],
|
|
2923
2974
|
}, total=False)
|
|
2924
2975
|
|
|
2976
|
+
ModelEsAirbnbDensityCell = TypedDict('ModelEsAirbnbDensityCell', {
|
|
2977
|
+
'geohash': NotRequired[str],
|
|
2978
|
+
'lat': NotRequired[float],
|
|
2979
|
+
'listings': NotRequired[int],
|
|
2980
|
+
'lon': NotRequired[float],
|
|
2981
|
+
'superhost_listings': NotRequired[int],
|
|
2982
|
+
'superhost_pct': NotRequired[float],
|
|
2983
|
+
}, total=False)
|
|
2984
|
+
|
|
2985
|
+
ModelEsAirbnbGeoBounds = TypedDict('ModelEsAirbnbGeoBounds', {
|
|
2986
|
+
'bottom_right': NotRequired[ModelEsGeoPoint],
|
|
2987
|
+
'top_left': NotRequired[ModelEsGeoPoint],
|
|
2988
|
+
}, total=False)
|
|
2989
|
+
|
|
2990
|
+
ModelEsAirbnbMarketCell = TypedDict('ModelEsAirbnbMarketCell', {
|
|
2991
|
+
'avg_rating': NotRequired[float],
|
|
2992
|
+
'avg_review_count': NotRequired[float],
|
|
2993
|
+
'key': NotRequired[str],
|
|
2994
|
+
'last_seen': NotRequired[str],
|
|
2995
|
+
'listings': NotRequired[int],
|
|
2996
|
+
'rated_listings': NotRequired[int],
|
|
2997
|
+
'superhost_listings': NotRequired[int],
|
|
2998
|
+
'superhost_pct': NotRequired[float],
|
|
2999
|
+
}, total=False)
|
|
3000
|
+
|
|
3001
|
+
ModelEsAirbnbMarketDetail = TypedDict('ModelEsAirbnbMarketDetail', {
|
|
3002
|
+
'avg_rating': NotRequired[float],
|
|
3003
|
+
'avg_review_count': NotRequired[float],
|
|
3004
|
+
'bounds': NotRequired[ModelEsAirbnbGeoBounds],
|
|
3005
|
+
'country': NotRequired[str],
|
|
3006
|
+
'currencies': NotRequired[list[ModelEsAirbnbPriceStats]],
|
|
3007
|
+
'last_seen': NotRequired[str],
|
|
3008
|
+
'listings': NotRequired[int],
|
|
3009
|
+
'metros': NotRequired[list[ModelEsAirbnbMarketCell]],
|
|
3010
|
+
'rated_listings': NotRequired[int],
|
|
3011
|
+
'superhost_listings': NotRequired[int],
|
|
3012
|
+
'superhost_pct': NotRequired[float],
|
|
3013
|
+
}, total=False)
|
|
3014
|
+
|
|
3015
|
+
ModelEsAirbnbMarketFacetItem = TypedDict('ModelEsAirbnbMarketFacetItem', {
|
|
3016
|
+
'count': NotRequired[int],
|
|
3017
|
+
'value': NotRequired[str],
|
|
3018
|
+
}, total=False)
|
|
3019
|
+
|
|
3020
|
+
ModelEsAirbnbPriceStats = TypedDict('ModelEsAirbnbPriceStats', {
|
|
3021
|
+
'currency': NotRequired[str],
|
|
3022
|
+
'listings': NotRequired[int],
|
|
3023
|
+
'p25': NotRequired[float],
|
|
3024
|
+
'p50': NotRequired[float],
|
|
3025
|
+
'p75': NotRequired[float],
|
|
3026
|
+
}, total=False)
|
|
3027
|
+
|
|
2925
3028
|
ModelEsAppRecord = TypedDict('ModelEsAppRecord', {
|
|
2926
3029
|
'android_max_installs': NotRequired[int],
|
|
2927
3030
|
'android_package': NotRequired[str],
|
|
@@ -13149,6 +13252,64 @@ DatasetsListParams = TypedDict('DatasetsListParams', {
|
|
|
13149
13252
|
'_headers': NotRequired[Mapping[str, str]],
|
|
13150
13253
|
}, total=False)
|
|
13151
13254
|
|
|
13255
|
+
DatasetsAirbnbMarketsFacetsResponse = ModelDatasetsAirbnbMarketsFacetResponseDoc
|
|
13256
|
+
DatasetsAirbnbMarketsFacetsParams = TypedDict('DatasetsAirbnbMarketsFacetsParams', {
|
|
13257
|
+
'_response_type': NotRequired[ResponseType],
|
|
13258
|
+
'_timeout': NotRequired[float],
|
|
13259
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
13260
|
+
'facet': Required[str],
|
|
13261
|
+
'group_by': NotRequired[str],
|
|
13262
|
+
'country': NotRequired[str],
|
|
13263
|
+
'market': NotRequired[str],
|
|
13264
|
+
'superhost': NotRequired[bool],
|
|
13265
|
+
'min_rating': NotRequired[float],
|
|
13266
|
+
'min_review_count': NotRequired[int],
|
|
13267
|
+
'active_since': NotRequired[str],
|
|
13268
|
+
'min_listings': NotRequired[int],
|
|
13269
|
+
}, total=False)
|
|
13270
|
+
|
|
13271
|
+
DatasetsAirbnbMarketsItemResponse = ModelDatasetsAirbnbMarketResponseDoc
|
|
13272
|
+
DatasetsAirbnbMarketsItemParams = TypedDict('DatasetsAirbnbMarketsItemParams', {
|
|
13273
|
+
'_response_type': NotRequired[ResponseType],
|
|
13274
|
+
'_timeout': NotRequired[float],
|
|
13275
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
13276
|
+
'country': Required[str],
|
|
13277
|
+
}, total=False)
|
|
13278
|
+
|
|
13279
|
+
DatasetsAirbnbMarketsNearbyResponse = ModelDatasetsAirbnbMarketsNearbyResponseDoc
|
|
13280
|
+
DatasetsAirbnbMarketsNearbyParams = TypedDict('DatasetsAirbnbMarketsNearbyParams', {
|
|
13281
|
+
'_response_type': NotRequired[ResponseType],
|
|
13282
|
+
'_timeout': NotRequired[float],
|
|
13283
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
13284
|
+
'lat': Required[float],
|
|
13285
|
+
'lon': Required[float],
|
|
13286
|
+
'radius_m': Required[int],
|
|
13287
|
+
'precision': NotRequired[int],
|
|
13288
|
+
'min_listings': NotRequired[int],
|
|
13289
|
+
'country': NotRequired[str],
|
|
13290
|
+
'superhost': NotRequired[bool],
|
|
13291
|
+
'min_rating': NotRequired[float],
|
|
13292
|
+
'active_since': NotRequired[str],
|
|
13293
|
+
}, total=False)
|
|
13294
|
+
|
|
13295
|
+
DatasetsAirbnbMarketsSearchResponse = ModelDatasetsAirbnbMarketsSearchResponseDoc
|
|
13296
|
+
DatasetsAirbnbMarketsSearchParams = TypedDict('DatasetsAirbnbMarketsSearchParams', {
|
|
13297
|
+
'_response_type': NotRequired[ResponseType],
|
|
13298
|
+
'_timeout': NotRequired[float],
|
|
13299
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
13300
|
+
'group_by': NotRequired[str],
|
|
13301
|
+
'country': NotRequired[str],
|
|
13302
|
+
'market': NotRequired[str],
|
|
13303
|
+
'superhost': NotRequired[bool],
|
|
13304
|
+
'min_rating': NotRequired[float],
|
|
13305
|
+
'min_review_count': NotRequired[int],
|
|
13306
|
+
'active_since': NotRequired[str],
|
|
13307
|
+
'min_listings': NotRequired[int],
|
|
13308
|
+
'sort': NotRequired[str],
|
|
13309
|
+
'page': NotRequired[int],
|
|
13310
|
+
'page_size': NotRequired[int],
|
|
13311
|
+
}, total=False)
|
|
13312
|
+
|
|
13152
13313
|
DatasetsAppsChartsSearchResponse = ModelDatasetsChartsSearchResponseDoc
|
|
13153
13314
|
DatasetsAppsChartsSearchParams = TypedDict('DatasetsAppsChartsSearchParams', {
|
|
13154
13315
|
'_response_type': NotRequired[ResponseType],
|
|
@@ -17722,6 +17883,10 @@ class WebGroup:
|
|
|
17722
17883
|
|
|
17723
17884
|
class DatasetsGroup:
|
|
17724
17885
|
def list(self, **params: Unpack[DatasetsListParams]) -> DatasetsListResponse: ...
|
|
17886
|
+
def airbnb_markets_facets(self, **params: Unpack[DatasetsAirbnbMarketsFacetsParams]) -> DatasetsAirbnbMarketsFacetsResponse: ...
|
|
17887
|
+
def airbnb_markets_item(self, **params: Unpack[DatasetsAirbnbMarketsItemParams]) -> DatasetsAirbnbMarketsItemResponse: ...
|
|
17888
|
+
def airbnb_markets_nearby(self, **params: Unpack[DatasetsAirbnbMarketsNearbyParams]) -> DatasetsAirbnbMarketsNearbyResponse: ...
|
|
17889
|
+
def airbnb_markets_search(self, **params: Unpack[DatasetsAirbnbMarketsSearchParams]) -> DatasetsAirbnbMarketsSearchResponse: ...
|
|
17725
17890
|
def apps_charts_search(self, **params: Unpack[DatasetsAppsChartsSearchParams]) -> DatasetsAppsChartsSearchResponse: ...
|
|
17726
17891
|
def apps_reviews_search(self, **params: Unpack[DatasetsAppsReviewsSearchParams]) -> DatasetsAppsReviewsSearchResponse: ...
|
|
17727
17892
|
def apps_search(self, **params: Unpack[DatasetsAppsSearchParams]) -> DatasetsAppsSearchResponse: ...
|
|
@@ -18311,6 +18476,10 @@ OperationId = Literal[
|
|
|
18311
18476
|
'coingecko-trending',
|
|
18312
18477
|
'contact',
|
|
18313
18478
|
'datasets-list',
|
|
18479
|
+
'datasets-airbnb-markets-facets',
|
|
18480
|
+
'datasets-airbnb-markets-item',
|
|
18481
|
+
'datasets-airbnb-markets-nearby',
|
|
18482
|
+
'datasets-airbnb-markets-search',
|
|
18314
18483
|
'datasets-apps-charts-search',
|
|
18315
18484
|
'datasets-apps-reviews-search',
|
|
18316
18485
|
'datasets-apps-search',
|
|
@@ -19899,6 +20068,54 @@ class CrawloraClient:
|
|
|
19899
20068
|
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
19900
20069
|
) -> DatasetsListResponse: ...
|
|
19901
20070
|
@overload
|
|
20071
|
+
def operation(
|
|
20072
|
+
self,
|
|
20073
|
+
operation_id: Literal['datasets-airbnb-markets-facets'],
|
|
20074
|
+
params: DatasetsAirbnbMarketsFacetsParams,
|
|
20075
|
+
*,
|
|
20076
|
+
response_type: ResponseType = ...,
|
|
20077
|
+
timeout: float | None = ...,
|
|
20078
|
+
headers: Mapping[str, str] | None = ...,
|
|
20079
|
+
retries: int | None = ...,
|
|
20080
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
20081
|
+
) -> DatasetsAirbnbMarketsFacetsResponse: ...
|
|
20082
|
+
@overload
|
|
20083
|
+
def operation(
|
|
20084
|
+
self,
|
|
20085
|
+
operation_id: Literal['datasets-airbnb-markets-item'],
|
|
20086
|
+
params: DatasetsAirbnbMarketsItemParams,
|
|
20087
|
+
*,
|
|
20088
|
+
response_type: ResponseType = ...,
|
|
20089
|
+
timeout: float | None = ...,
|
|
20090
|
+
headers: Mapping[str, str] | None = ...,
|
|
20091
|
+
retries: int | None = ...,
|
|
20092
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
20093
|
+
) -> DatasetsAirbnbMarketsItemResponse: ...
|
|
20094
|
+
@overload
|
|
20095
|
+
def operation(
|
|
20096
|
+
self,
|
|
20097
|
+
operation_id: Literal['datasets-airbnb-markets-nearby'],
|
|
20098
|
+
params: DatasetsAirbnbMarketsNearbyParams,
|
|
20099
|
+
*,
|
|
20100
|
+
response_type: ResponseType = ...,
|
|
20101
|
+
timeout: float | None = ...,
|
|
20102
|
+
headers: Mapping[str, str] | None = ...,
|
|
20103
|
+
retries: int | None = ...,
|
|
20104
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
20105
|
+
) -> DatasetsAirbnbMarketsNearbyResponse: ...
|
|
20106
|
+
@overload
|
|
20107
|
+
def operation(
|
|
20108
|
+
self,
|
|
20109
|
+
operation_id: Literal['datasets-airbnb-markets-search'],
|
|
20110
|
+
params: DatasetsAirbnbMarketsSearchParams = ...,
|
|
20111
|
+
*,
|
|
20112
|
+
response_type: ResponseType = ...,
|
|
20113
|
+
timeout: float | None = ...,
|
|
20114
|
+
headers: Mapping[str, str] | None = ...,
|
|
20115
|
+
retries: int | None = ...,
|
|
20116
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
20117
|
+
) -> DatasetsAirbnbMarketsSearchResponse: ...
|
|
20118
|
+
@overload
|
|
19902
20119
|
def operation(
|
|
19903
20120
|
self,
|
|
19904
20121
|
operation_id: Literal['datasets-apps-charts-search'],
|
|
@@ -26211,6 +26428,54 @@ class CrawloraClient:
|
|
|
26211
26428
|
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
26212
26429
|
) -> DatasetsListResponse: ...
|
|
26213
26430
|
@overload
|
|
26431
|
+
def request(
|
|
26432
|
+
self,
|
|
26433
|
+
operation_id: Literal['datasets-airbnb-markets-facets'],
|
|
26434
|
+
params: DatasetsAirbnbMarketsFacetsParams,
|
|
26435
|
+
*,
|
|
26436
|
+
response_type: ResponseType = ...,
|
|
26437
|
+
timeout: float | None = ...,
|
|
26438
|
+
headers: Mapping[str, str] | None = ...,
|
|
26439
|
+
retries: int | None = ...,
|
|
26440
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
26441
|
+
) -> DatasetsAirbnbMarketsFacetsResponse: ...
|
|
26442
|
+
@overload
|
|
26443
|
+
def request(
|
|
26444
|
+
self,
|
|
26445
|
+
operation_id: Literal['datasets-airbnb-markets-item'],
|
|
26446
|
+
params: DatasetsAirbnbMarketsItemParams,
|
|
26447
|
+
*,
|
|
26448
|
+
response_type: ResponseType = ...,
|
|
26449
|
+
timeout: float | None = ...,
|
|
26450
|
+
headers: Mapping[str, str] | None = ...,
|
|
26451
|
+
retries: int | None = ...,
|
|
26452
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
26453
|
+
) -> DatasetsAirbnbMarketsItemResponse: ...
|
|
26454
|
+
@overload
|
|
26455
|
+
def request(
|
|
26456
|
+
self,
|
|
26457
|
+
operation_id: Literal['datasets-airbnb-markets-nearby'],
|
|
26458
|
+
params: DatasetsAirbnbMarketsNearbyParams,
|
|
26459
|
+
*,
|
|
26460
|
+
response_type: ResponseType = ...,
|
|
26461
|
+
timeout: float | None = ...,
|
|
26462
|
+
headers: Mapping[str, str] | None = ...,
|
|
26463
|
+
retries: int | None = ...,
|
|
26464
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
26465
|
+
) -> DatasetsAirbnbMarketsNearbyResponse: ...
|
|
26466
|
+
@overload
|
|
26467
|
+
def request(
|
|
26468
|
+
self,
|
|
26469
|
+
operation_id: Literal['datasets-airbnb-markets-search'],
|
|
26470
|
+
params: DatasetsAirbnbMarketsSearchParams = ...,
|
|
26471
|
+
*,
|
|
26472
|
+
response_type: ResponseType = ...,
|
|
26473
|
+
timeout: float | None = ...,
|
|
26474
|
+
headers: Mapping[str, str] | None = ...,
|
|
26475
|
+
retries: int | None = ...,
|
|
26476
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
26477
|
+
) -> DatasetsAirbnbMarketsSearchResponse: ...
|
|
26478
|
+
@overload
|
|
26214
26479
|
def request(
|
|
26215
26480
|
self,
|
|
26216
26481
|
operation_id: Literal['datasets-apps-charts-search'],
|
|
@@ -2435,6 +2435,83 @@ OPERATIONS = {'airbnb-room': {'bodyParam': None,
|
|
|
2435
2435
|
'produces': ['application/json'],
|
|
2436
2436
|
'queryParams': [],
|
|
2437
2437
|
'security': ['ApiKeyAuth']},
|
|
2438
|
+
'datasets-airbnb-markets-facets': {'bodyParam': None,
|
|
2439
|
+
'bodyRequired': False,
|
|
2440
|
+
'consumes': ['application/json'],
|
|
2441
|
+
'formParams': [],
|
|
2442
|
+
'id': 'datasets-airbnb-markets-facets',
|
|
2443
|
+
'method': 'GET',
|
|
2444
|
+
'path': '/datasets/airbnb-markets/facets',
|
|
2445
|
+
'pathParams': [],
|
|
2446
|
+
'produces': ['application/json'],
|
|
2447
|
+
'queryParams': [{'in': 'query',
|
|
2448
|
+
'name': 'facet',
|
|
2449
|
+
'required': True,
|
|
2450
|
+
'type': 'string'},
|
|
2451
|
+
{'in': 'query', 'name': 'group_by', 'type': 'string'},
|
|
2452
|
+
{'in': 'query', 'name': 'country', 'type': 'string'},
|
|
2453
|
+
{'in': 'query', 'name': 'market', 'type': 'string'},
|
|
2454
|
+
{'in': 'query', 'name': 'superhost', 'type': 'boolean'},
|
|
2455
|
+
{'in': 'query', 'name': 'min_rating', 'type': 'number'},
|
|
2456
|
+
{'in': 'query', 'name': 'min_review_count', 'type': 'integer'},
|
|
2457
|
+
{'in': 'query', 'name': 'active_since', 'type': 'string'},
|
|
2458
|
+
{'in': 'query', 'name': 'min_listings', 'type': 'integer'}],
|
|
2459
|
+
'security': ['ApiKeyAuth']},
|
|
2460
|
+
'datasets-airbnb-markets-item': {'bodyParam': None,
|
|
2461
|
+
'bodyRequired': False,
|
|
2462
|
+
'consumes': ['application/json'],
|
|
2463
|
+
'formParams': [],
|
|
2464
|
+
'id': 'datasets-airbnb-markets-item',
|
|
2465
|
+
'method': 'GET',
|
|
2466
|
+
'path': '/datasets/airbnb-markets/items/{country}',
|
|
2467
|
+
'pathParams': ['country'],
|
|
2468
|
+
'produces': ['application/json'],
|
|
2469
|
+
'queryParams': [],
|
|
2470
|
+
'security': ['ApiKeyAuth']},
|
|
2471
|
+
'datasets-airbnb-markets-nearby': {'bodyParam': None,
|
|
2472
|
+
'bodyRequired': False,
|
|
2473
|
+
'consumes': ['application/json'],
|
|
2474
|
+
'formParams': [],
|
|
2475
|
+
'id': 'datasets-airbnb-markets-nearby',
|
|
2476
|
+
'method': 'GET',
|
|
2477
|
+
'path': '/datasets/airbnb-markets/nearby',
|
|
2478
|
+
'pathParams': [],
|
|
2479
|
+
'produces': ['application/json'],
|
|
2480
|
+
'queryParams': [{'in': 'query', 'name': 'lat', 'required': True, 'type': 'number'},
|
|
2481
|
+
{'in': 'query', 'name': 'lon', 'required': True, 'type': 'number'},
|
|
2482
|
+
{'in': 'query',
|
|
2483
|
+
'name': 'radius_m',
|
|
2484
|
+
'required': True,
|
|
2485
|
+
'type': 'integer'},
|
|
2486
|
+
{'in': 'query', 'name': 'precision', 'type': 'integer'},
|
|
2487
|
+
{'in': 'query', 'name': 'min_listings', 'type': 'integer'},
|
|
2488
|
+
{'in': 'query', 'name': 'country', 'type': 'string'},
|
|
2489
|
+
{'in': 'query', 'name': 'superhost', 'type': 'boolean'},
|
|
2490
|
+
{'in': 'query', 'name': 'min_rating', 'type': 'number'},
|
|
2491
|
+
{'in': 'query', 'name': 'active_since', 'type': 'string'}],
|
|
2492
|
+
'security': ['ApiKeyAuth']},
|
|
2493
|
+
'datasets-airbnb-markets-search': {'bodyParam': None,
|
|
2494
|
+
'bodyRequired': False,
|
|
2495
|
+
'consumes': ['application/json'],
|
|
2496
|
+
'formParams': [],
|
|
2497
|
+
'id': 'datasets-airbnb-markets-search',
|
|
2498
|
+
'method': 'GET',
|
|
2499
|
+
'paginatable': True,
|
|
2500
|
+
'path': '/datasets/airbnb-markets/search',
|
|
2501
|
+
'pathParams': [],
|
|
2502
|
+
'produces': ['application/json'],
|
|
2503
|
+
'queryParams': [{'in': 'query', 'name': 'group_by', 'type': 'string'},
|
|
2504
|
+
{'in': 'query', 'name': 'country', 'type': 'string'},
|
|
2505
|
+
{'in': 'query', 'name': 'market', 'type': 'string'},
|
|
2506
|
+
{'in': 'query', 'name': 'superhost', 'type': 'boolean'},
|
|
2507
|
+
{'in': 'query', 'name': 'min_rating', 'type': 'number'},
|
|
2508
|
+
{'in': 'query', 'name': 'min_review_count', 'type': 'integer'},
|
|
2509
|
+
{'in': 'query', 'name': 'active_since', 'type': 'string'},
|
|
2510
|
+
{'in': 'query', 'name': 'min_listings', 'type': 'integer'},
|
|
2511
|
+
{'in': 'query', 'name': 'sort', 'type': 'string'},
|
|
2512
|
+
{'in': 'query', 'name': 'page', 'type': 'integer'},
|
|
2513
|
+
{'in': 'query', 'name': 'page_size', 'type': 'integer'}],
|
|
2514
|
+
'security': ['ApiKeyAuth']},
|
|
2438
2515
|
'datasets-apps-charts-search': {'bodyParam': None,
|
|
2439
2516
|
'bodyRequired': False,
|
|
2440
2517
|
'consumes': ['application/json'],
|
|
@@ -9094,7 +9171,11 @@ GROUPS = {'airbnb': {'room': 'airbnb-room',
|
|
|
9094
9171
|
'token_unlocks': 'coingecko-token-unlocks',
|
|
9095
9172
|
'treasuries': 'coingecko-treasuries',
|
|
9096
9173
|
'trending': 'coingecko-trending'},
|
|
9097
|
-
'datasets': {'
|
|
9174
|
+
'datasets': {'airbnb_markets_facets': 'datasets-airbnb-markets-facets',
|
|
9175
|
+
'airbnb_markets_item': 'datasets-airbnb-markets-item',
|
|
9176
|
+
'airbnb_markets_nearby': 'datasets-airbnb-markets-nearby',
|
|
9177
|
+
'airbnb_markets_search': 'datasets-airbnb-markets-search',
|
|
9178
|
+
'apps_charts_search': 'datasets-apps-charts-search',
|
|
9098
9179
|
'apps_reviews_search': 'datasets-apps-reviews-search',
|
|
9099
9180
|
'apps_search': 'datasets-apps-search',
|
|
9100
9181
|
'creators_search': 'datasets-creators-search',
|
|
@@ -9523,7 +9604,7 @@ GROUPS = {'airbnb': {'room': 'airbnb-room',
|
|
|
9523
9604
|
'video': 'youtube-video'},
|
|
9524
9605
|
'zillow': {'autocomplete': 'zillow-autocomplete', 'property': 'zillow-property', 'search': 'zillow-search'}}
|
|
9525
9606
|
|
|
9526
|
-
OPERATION_COUNT =
|
|
9607
|
+
OPERATION_COUNT = 529
|
|
9527
9608
|
|
|
9528
9609
|
class OperationId:
|
|
9529
9610
|
AIRBNB_ROOM = 'airbnb-room'
|
|
@@ -9609,6 +9690,10 @@ class OperationId:
|
|
|
9609
9690
|
COIN_GECKO_TOKEN_UNLOCKS = 'coingecko-token-unlocks'
|
|
9610
9691
|
COIN_GECKO_TREASURIES = 'coingecko-treasuries'
|
|
9611
9692
|
COIN_GECKO_TRENDING = 'coingecko-trending'
|
|
9693
|
+
DATASETS_AIRBNB_MARKETS_FACETS = 'datasets-airbnb-markets-facets'
|
|
9694
|
+
DATASETS_AIRBNB_MARKETS_ITEM = 'datasets-airbnb-markets-item'
|
|
9695
|
+
DATASETS_AIRBNB_MARKETS_NEARBY = 'datasets-airbnb-markets-nearby'
|
|
9696
|
+
DATASETS_AIRBNB_MARKETS_SEARCH = 'datasets-airbnb-markets-search'
|
|
9612
9697
|
DATASETS_APPS_CHARTS_SEARCH = 'datasets-apps-charts-search'
|
|
9613
9698
|
DATASETS_APPS_REVIEWS_SEARCH = 'datasets-apps-reviews-search'
|
|
9614
9699
|
DATASETS_APPS_SEARCH = 'datasets-apps-search'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crawlora
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.10.0.dev1
|
|
4
4
|
Summary: Official Python SDK for the Crawlora web-scraping API: typed grouped and dynamic operation calls for every public endpoint, with retries, pagination, hooks, and an async client.
|
|
5
5
|
Author: Crawlora
|
|
6
6
|
License-Expression: MIT
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Generated from `openapi/public.json`. Deprecated, admin, and internal operations are excluded from this SDK contract.
|
|
4
4
|
|
|
5
|
-
Total operations: `
|
|
5
|
+
Total operations: `529`
|
|
6
6
|
|
|
7
7
|
| Group | SDK method | Operation ID | HTTP | Params | Auth | Response | Notes |
|
|
8
8
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
@@ -93,6 +93,10 @@ Total operations: `525`
|
|
|
93
93
|
| web | `web.antibot_check` | `antibot-check` | `POST /diagnostics/antibot-check` | `request` (body str required) | `ApiKeyAuth` | `WebAntibotCheckResponse` | |
|
|
94
94
|
| web | `web.scrape` | `web-scrape` | `POST /web/scrape` | `scrapeOption` (body str required) | `ApiKeyAuth` | `WebScrapeResponse` | |
|
|
95
95
|
| datasets | `datasets.list` | `datasets-list` | `GET /datasets` | none | `ApiKeyAuth` | `DatasetsListResponse` | |
|
|
96
|
+
| datasets | `datasets.airbnb_markets_facets` | `datasets-airbnb-markets-facets` | `GET /datasets/airbnb-markets/facets` | `facet` (query str required)<br>`group_by` (query str)<br>`country` (query str)<br>`market` (query str)<br>`superhost` (query bool)<br>`min_rating` (query float)<br>`min_review_count` (query int)<br>`active_since` (query str)<br>`min_listings` (query int) | `ApiKeyAuth` | `DatasetsAirbnbMarketsFacetsResponse` | |
|
|
97
|
+
| datasets | `datasets.airbnb_markets_item` | `datasets-airbnb-markets-item` | `GET /datasets/airbnb-markets/items/{country}` | `country` (path str required) | `ApiKeyAuth` | `DatasetsAirbnbMarketsItemResponse` | |
|
|
98
|
+
| datasets | `datasets.airbnb_markets_nearby` | `datasets-airbnb-markets-nearby` | `GET /datasets/airbnb-markets/nearby` | `lat` (query float required)<br>`lon` (query float required)<br>`radius_m` (query int required)<br>`precision` (query int)<br>`min_listings` (query int)<br>`country` (query str)<br>`superhost` (query bool)<br>`min_rating` (query float)<br>`active_since` (query str) | `ApiKeyAuth` | `DatasetsAirbnbMarketsNearbyResponse` | |
|
|
99
|
+
| datasets | `datasets.airbnb_markets_search` | `datasets-airbnb-markets-search` | `GET /datasets/airbnb-markets/search` | `group_by` (query str)<br>`country` (query str)<br>`market` (query str)<br>`superhost` (query bool)<br>`min_rating` (query float)<br>`min_review_count` (query int)<br>`active_since` (query str)<br>`min_listings` (query int)<br>`sort` (query str)<br>`page` (query int)<br>`page_size` (query int) | `ApiKeyAuth` | `DatasetsAirbnbMarketsSearchResponse` | |
|
|
96
100
|
| datasets | `datasets.apps_charts_search` | `datasets-apps-charts-search` | `GET /datasets/apps-charts/search` | `q` (query str)<br>`store` (query str)<br>`chart_type` (query str)<br>`collection` (query str)<br>`category` (query str)<br>`country` (query str)<br>`app_id` (query str)<br>`date` (query str)<br>`sort` (query str)<br>`page` (query int)<br>`page_size` (query int) | `ApiKeyAuth` | `DatasetsAppsChartsSearchResponse` | |
|
|
97
101
|
| datasets | `datasets.apps_reviews_search` | `datasets-apps-reviews-search` | `GET /datasets/apps-reviews/search` | `q` (query str)<br>`store` (query str)<br>`app_id` (query str)<br>`country` (query str)<br>`min_score` (query int)<br>`sort` (query str)<br>`page` (query int)<br>`page_size` (query int) | `ApiKeyAuth` | `DatasetsAppsReviewsSearchResponse` | |
|
|
98
102
|
| datasets | `datasets.apps_search` | `datasets-apps-search` | `GET /datasets/apps/search` | `q` (query str)<br>`store` (query str)<br>`category` (query str)<br>`country` (query str)<br>`developer` (query str)<br>`free` (query bool)<br>`min_rating` (query float)<br>`min_reviews` (query int)<br>`sort` (query str)<br>`page` (query int)<br>`page_size` (query int) | `ApiKeyAuth` | `DatasetsAppsSearchResponse` | |
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "crawlora"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.10.0.dev1"
|
|
8
8
|
description = "Official Python SDK for the Crawlora web-scraping API: typed grouped and dynamic operation calls for every public endpoint, with retries, pagination, hooks, and an async client."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -267,7 +267,7 @@ class CrawloraClientTest(unittest.TestCase):
|
|
|
267
267
|
self.assertIs(raised.exception.__cause__, cause)
|
|
268
268
|
|
|
269
269
|
def test_operation_metadata_count(self):
|
|
270
|
-
self.assertEqual(OPERATION_COUNT,
|
|
270
|
+
self.assertEqual(OPERATION_COUNT, 529)
|
|
271
271
|
|
|
272
272
|
def test_deprecated_endpoints_are_not_generated(self):
|
|
273
273
|
self.assertFalse(hasattr(CrawloraClient(api_key="api_test", base_url=self.base_url).google, "lens"))
|
|
@@ -296,7 +296,7 @@ class CrawloraClientTest(unittest.TestCase):
|
|
|
296
296
|
recipes_doc = root.joinpath("docs", "recipes.md").read_text()
|
|
297
297
|
|
|
298
298
|
for expected in [
|
|
299
|
-
"Total operations: `
|
|
299
|
+
"Total operations: `529`",
|
|
300
300
|
"`bing-search`",
|
|
301
301
|
"`GET /bing/search`",
|
|
302
302
|
"`bing.search`",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|