crawlora 1.7.0.dev1__tar.gz → 1.8.0.dev2__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.7.0.dev1/crawlora.egg-info → crawlora-1.8.0.dev2}/PKG-INFO +3 -3
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/README.md +2 -2
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora/client.py +1 -1
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora/client.pyi +558 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora/operations.py +115 -1
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2/crawlora.egg-info}/PKG-INFO +3 -3
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/docs/operations.md +9 -1
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/pyproject.toml +1 -1
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/tests/test_client.py +2 -2
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/LICENSE +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/MANIFEST.in +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora/__init__.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora/_pagination.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora/_transport_sync.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora/async_client.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora/py.typed +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora.egg-info/SOURCES.txt +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora.egg-info/dependency_links.txt +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora.egg-info/requires.txt +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/crawlora.egg-info/top_level.txt +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/docs/recipes.md +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/examples/async_search.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/examples/bing_search.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/examples/paginate.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/examples/youtube_transcript.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/setup.cfg +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/tests/test_async_httpx.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/tests/test_examples.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/tests/test_v14_features.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/tests/test_v15_features.py +0 -0
- {crawlora-1.7.0.dev1 → crawlora-1.8.0.dev2}/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.8.0.dev2
|
|
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
|
|
@@ -27,7 +27,7 @@ Dynamic: license-file
|
|
|
27
27
|
# Crawlora Python SDK
|
|
28
28
|
|
|
29
29
|
Python client for the public Crawlora API. Use it to call Crawlora scraping,
|
|
30
|
-
search, social, marketplace, media, maps, finance, brand, and usage endpoints
|
|
30
|
+
search, social, marketplace, media, maps, finance, prediction-market, brand, and usage endpoints
|
|
31
31
|
with generated type stubs for editor and type-checker support.
|
|
32
32
|
|
|
33
33
|
- Runtime: Python 3.10+
|
|
@@ -38,7 +38,7 @@ with generated type stubs for editor and type-checker support.
|
|
|
38
38
|
## Install
|
|
39
39
|
|
|
40
40
|
Published on [PyPI](https://pypi.org/project/crawlora/). The current release is a
|
|
41
|
-
prerelease (`1.
|
|
41
|
+
prerelease (`1.7.0.dev1`), so install it with `--pre`:
|
|
42
42
|
|
|
43
43
|
```sh
|
|
44
44
|
pip install --pre crawlora
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Crawlora Python SDK
|
|
2
2
|
|
|
3
3
|
Python client for the public Crawlora API. Use it to call Crawlora scraping,
|
|
4
|
-
search, social, marketplace, media, maps, finance, brand, and usage endpoints
|
|
4
|
+
search, social, marketplace, media, maps, finance, prediction-market, brand, and usage endpoints
|
|
5
5
|
with generated type stubs for editor and type-checker support.
|
|
6
6
|
|
|
7
7
|
- Runtime: Python 3.10+
|
|
@@ -12,7 +12,7 @@ with generated type stubs for editor and type-checker support.
|
|
|
12
12
|
## Install
|
|
13
13
|
|
|
14
14
|
Published on [PyPI](https://pypi.org/project/crawlora/). The current release is a
|
|
15
|
-
prerelease (`1.
|
|
15
|
+
prerelease (`1.7.0.dev1`), so install it with `--pre`:
|
|
16
16
|
|
|
17
17
|
```sh
|
|
18
18
|
pip install --pre crawlora
|
|
@@ -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.8.0-sdk.2"
|
|
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)
|
|
@@ -173,6 +173,57 @@ ModelAmazonSuggestResponseDoc = TypedDict('ModelAmazonSuggestResponseDoc', {
|
|
|
173
173
|
'msg': NotRequired[str],
|
|
174
174
|
}, total=False)
|
|
175
175
|
|
|
176
|
+
ModelAntibotBand = Literal['easy', 'medium', 'hard', 'very_hard', 'blocked', 'unknown']
|
|
177
|
+
|
|
178
|
+
ModelAntibotProtection = TypedDict('ModelAntibotProtection', {
|
|
179
|
+
'captcha_mode': NotRequired[str],
|
|
180
|
+
'captcha_type': NotRequired[str],
|
|
181
|
+
'confidence': NotRequired[str],
|
|
182
|
+
'confidence_score': NotRequired[int],
|
|
183
|
+
'custom_vm': NotRequired[bool],
|
|
184
|
+
'evidence': NotRequired[list[str]],
|
|
185
|
+
'kind': NotRequired[str],
|
|
186
|
+
'vendor': NotRequired[str],
|
|
187
|
+
'vm_vendor': NotRequired[str],
|
|
188
|
+
}, total=False)
|
|
189
|
+
|
|
190
|
+
ModelAntibotSignals = TypedDict('ModelAntibotSignals', {
|
|
191
|
+
'attempts_passed': NotRequired[int],
|
|
192
|
+
'attempts_run': NotRequired[int],
|
|
193
|
+
'attempts_skipped': NotRequired[int],
|
|
194
|
+
'block_markers': NotRequired[list[str]],
|
|
195
|
+
'blocked_status': NotRequired[bool],
|
|
196
|
+
'captcha_detected': NotRequired[bool],
|
|
197
|
+
'challenge_detected': NotRequired[bool],
|
|
198
|
+
'js_render_likely': NotRequired[bool],
|
|
199
|
+
'rate_limited': NotRequired[bool],
|
|
200
|
+
}, total=False)
|
|
201
|
+
|
|
202
|
+
ModelAntibotVerdict = TypedDict('ModelAntibotVerdict', {
|
|
203
|
+
'auth_required': NotRequired[bool],
|
|
204
|
+
'block_detail': NotRequired[str],
|
|
205
|
+
'block_reason': NotRequired[str],
|
|
206
|
+
'captcha_types': NotRequired[list[str]],
|
|
207
|
+
'coverage': NotRequired[str],
|
|
208
|
+
'custom_vm': NotRequired[bool],
|
|
209
|
+
'detection_confidence_score': NotRequired[int],
|
|
210
|
+
'difficulty_band': NotRequired[ModelAntibotBand],
|
|
211
|
+
'difficulty_score': NotRequired[int],
|
|
212
|
+
'easiest_working_transport': NotRequired[str],
|
|
213
|
+
'enforcement': NotRequired[str],
|
|
214
|
+
'gated_layers': NotRequired[list[str]],
|
|
215
|
+
'notes': NotRequired[list[str]],
|
|
216
|
+
'protections': NotRequired[list[ModelAntibotProtection]],
|
|
217
|
+
'recommended_approach': NotRequired[str],
|
|
218
|
+
'recommended_profile': NotRequired[str],
|
|
219
|
+
'retry_after': NotRequired[str],
|
|
220
|
+
'scrapeable': NotRequired[bool],
|
|
221
|
+
'signals': NotRequired[ModelAntibotSignals],
|
|
222
|
+
'summary': NotRequired[str],
|
|
223
|
+
'url': NotRequired[str],
|
|
224
|
+
'vm_vendor': NotRequired[str],
|
|
225
|
+
}, total=False)
|
|
226
|
+
|
|
176
227
|
ModelApiComponentStatus = TypedDict('ModelApiComponentStatus', {
|
|
177
228
|
'error': NotRequired[str],
|
|
178
229
|
'ready': NotRequired[bool],
|
|
@@ -2480,6 +2531,48 @@ ModelContactContact = TypedDict('ModelContactContact', {
|
|
|
2480
2531
|
'url': NotRequired[str],
|
|
2481
2532
|
}, total=False)
|
|
2482
2533
|
|
|
2534
|
+
ModelContactContactRequest = TypedDict('ModelContactContactRequest', {
|
|
2535
|
+
'independents_only': NotRequired[bool],
|
|
2536
|
+
'max_pages': NotRequired[int],
|
|
2537
|
+
'url': Required[str],
|
|
2538
|
+
'verify': NotRequired[bool],
|
|
2539
|
+
}, total=False)
|
|
2540
|
+
|
|
2541
|
+
ModelContactContactResult = TypedDict('ModelContactContactResult', {
|
|
2542
|
+
'crawl_status': NotRequired[Literal['ok', 'blocked', 'unreachable']],
|
|
2543
|
+
'crawled_pages': NotRequired[list[str]],
|
|
2544
|
+
'domain': NotRequired[str],
|
|
2545
|
+
'domain_type': NotRequired[Literal['independent', 'chain', 'social', 'builder', 'directory']],
|
|
2546
|
+
'emails': NotRequired[list[ModelContactEmailContact]],
|
|
2547
|
+
'phones': NotRequired[list[ModelContactPhoneContact]],
|
|
2548
|
+
'socials': NotRequired[list[ModelContactSocialProfile]],
|
|
2549
|
+
'website': NotRequired[str],
|
|
2550
|
+
}, total=False)
|
|
2551
|
+
|
|
2552
|
+
ModelContactEmailContact = TypedDict('ModelContactEmailContact', {
|
|
2553
|
+
'address': NotRequired[str],
|
|
2554
|
+
'source_page': NotRequired[str],
|
|
2555
|
+
'status': NotRequired[Literal['verified', 'risky', 'unverified', 'invalid']],
|
|
2556
|
+
'type': NotRequired[Literal['generic', 'role', 'personal']],
|
|
2557
|
+
}, total=False)
|
|
2558
|
+
|
|
2559
|
+
ModelContactPhoneContact = TypedDict('ModelContactPhoneContact', {
|
|
2560
|
+
'number': NotRequired[str],
|
|
2561
|
+
'source_page': NotRequired[str],
|
|
2562
|
+
}, total=False)
|
|
2563
|
+
|
|
2564
|
+
ModelContactSocialProfile = TypedDict('ModelContactSocialProfile', {
|
|
2565
|
+
'handle': NotRequired[str],
|
|
2566
|
+
'network': NotRequired[str],
|
|
2567
|
+
'url': NotRequired[str],
|
|
2568
|
+
}, total=False)
|
|
2569
|
+
|
|
2570
|
+
ModelContactContactResponseDoc = TypedDict('ModelContactContactResponseDoc', {
|
|
2571
|
+
'code': NotRequired[int],
|
|
2572
|
+
'data': NotRequired[ModelContactContactResult],
|
|
2573
|
+
'msg': NotRequired[str],
|
|
2574
|
+
}, total=False)
|
|
2575
|
+
|
|
2483
2576
|
ModelDatasetsDatasetInfo = TypedDict('ModelDatasetsDatasetInfo', {
|
|
2484
2577
|
'capabilities': NotRequired[list[str]],
|
|
2485
2578
|
'description': NotRequired[str],
|
|
@@ -2530,6 +2623,17 @@ ModelDatasetsListResponseDoc = TypedDict('ModelDatasetsListResponseDoc', {
|
|
|
2530
2623
|
'msg': NotRequired[str],
|
|
2531
2624
|
}, total=False)
|
|
2532
2625
|
|
|
2626
|
+
ModelDiagnosticsAntibotCheckRequest = TypedDict('ModelDiagnosticsAntibotCheckRequest', {
|
|
2627
|
+
'fast': NotRequired[bool],
|
|
2628
|
+
'url': Required[str],
|
|
2629
|
+
}, total=False)
|
|
2630
|
+
|
|
2631
|
+
ModelDiagnosticsAntibotCheckResponseDoc = TypedDict('ModelDiagnosticsAntibotCheckResponseDoc', {
|
|
2632
|
+
'code': NotRequired[int],
|
|
2633
|
+
'data': NotRequired[ModelAntibotVerdict],
|
|
2634
|
+
'msg': NotRequired[str],
|
|
2635
|
+
}, total=False)
|
|
2636
|
+
|
|
2533
2637
|
ModelEbayItem = TypedDict('ModelEbayItem', {
|
|
2534
2638
|
'availability': NotRequired[str],
|
|
2535
2639
|
'condition': NotRequired[str],
|
|
@@ -7476,6 +7580,107 @@ ModelRedditUserPostsResponseDoc = TypedDict('ModelRedditUserPostsResponseDoc', {
|
|
|
7476
7580
|
'msg': NotRequired[str],
|
|
7477
7581
|
}, total=False)
|
|
7478
7582
|
|
|
7583
|
+
ModelRedfinEstimateResponse = TypedDict('ModelRedfinEstimateResponse', {
|
|
7584
|
+
'address': NotRequired[str],
|
|
7585
|
+
'baths': NotRequired[float],
|
|
7586
|
+
'beds': NotRequired[float],
|
|
7587
|
+
'city_time_series': NotRequired[list[float]],
|
|
7588
|
+
'county_time_series': NotRequired[list[float]],
|
|
7589
|
+
'estimate': NotRequired[float],
|
|
7590
|
+
'estimate_text': NotRequired[str],
|
|
7591
|
+
'latitude': NotRequired[float],
|
|
7592
|
+
'listing_price': NotRequired[float],
|
|
7593
|
+
'longitude': NotRequired[float],
|
|
7594
|
+
'postal_code_time_series': NotRequired[list[float]],
|
|
7595
|
+
'property_id': NotRequired[str],
|
|
7596
|
+
'property_time_series': NotRequired[list[float]],
|
|
7597
|
+
'sqft': NotRequired[float],
|
|
7598
|
+
'updated_at': NotRequired[int],
|
|
7599
|
+
'year_built': NotRequired[int],
|
|
7600
|
+
}, total=False)
|
|
7601
|
+
|
|
7602
|
+
ModelRedfinPropertyItem = TypedDict('ModelRedfinPropertyItem', {
|
|
7603
|
+
'address': NotRequired[str],
|
|
7604
|
+
'baths': NotRequired[float],
|
|
7605
|
+
'beds': NotRequired[float],
|
|
7606
|
+
'city': NotRequired[str],
|
|
7607
|
+
'days_on_market': NotRequired[int],
|
|
7608
|
+
'hoa_monthly': NotRequired[float],
|
|
7609
|
+
'image': NotRequired[str],
|
|
7610
|
+
'latitude': NotRequired[float],
|
|
7611
|
+
'listing_id': NotRequired[str],
|
|
7612
|
+
'longitude': NotRequired[float],
|
|
7613
|
+
'lot_size': NotRequired[float],
|
|
7614
|
+
'mls_number': NotRequired[str],
|
|
7615
|
+
'price': NotRequired[float],
|
|
7616
|
+
'price_per_sqft': NotRequired[float],
|
|
7617
|
+
'property_id': NotRequired[str],
|
|
7618
|
+
'property_type': NotRequired[str],
|
|
7619
|
+
'sqft': NotRequired[float],
|
|
7620
|
+
'state': NotRequired[str],
|
|
7621
|
+
'status': NotRequired[str],
|
|
7622
|
+
'url': NotRequired[str],
|
|
7623
|
+
'year_built': NotRequired[int],
|
|
7624
|
+
'zip': NotRequired[str],
|
|
7625
|
+
}, total=False)
|
|
7626
|
+
|
|
7627
|
+
ModelRedfinPropertyResponse = TypedDict('ModelRedfinPropertyResponse', {
|
|
7628
|
+
'address': NotRequired[str],
|
|
7629
|
+
'baths': NotRequired[float],
|
|
7630
|
+
'beds': NotRequired[float],
|
|
7631
|
+
'city': NotRequired[str],
|
|
7632
|
+
'days_on_market': NotRequired[int],
|
|
7633
|
+
'description': NotRequired[str],
|
|
7634
|
+
'facts': NotRequired[list[str]],
|
|
7635
|
+
'hoa_monthly': NotRequired[float],
|
|
7636
|
+
'image': NotRequired[str],
|
|
7637
|
+
'latitude': NotRequired[float],
|
|
7638
|
+
'listing_id': NotRequired[str],
|
|
7639
|
+
'longitude': NotRequired[float],
|
|
7640
|
+
'lot_size': NotRequired[float],
|
|
7641
|
+
'mls_number': NotRequired[str],
|
|
7642
|
+
'price': NotRequired[float],
|
|
7643
|
+
'price_per_sqft': NotRequired[float],
|
|
7644
|
+
'property_id': NotRequired[str],
|
|
7645
|
+
'property_type': NotRequired[str],
|
|
7646
|
+
'sqft': NotRequired[float],
|
|
7647
|
+
'state': NotRequired[str],
|
|
7648
|
+
'status': NotRequired[str],
|
|
7649
|
+
'url': NotRequired[str],
|
|
7650
|
+
'year_built': NotRequired[int],
|
|
7651
|
+
'zip': NotRequired[str],
|
|
7652
|
+
}, total=False)
|
|
7653
|
+
|
|
7654
|
+
ModelRedfinRegionTrendsResponse = TypedDict('ModelRedfinRegionTrendsResponse', {
|
|
7655
|
+
'avg_days_on_market': NotRequired[str],
|
|
7656
|
+
'avg_down_payment': NotRequired[str],
|
|
7657
|
+
'avg_num_offers': NotRequired[str],
|
|
7658
|
+
'median_list_per_sqft': NotRequired[str],
|
|
7659
|
+
'median_list_price': NotRequired[str],
|
|
7660
|
+
'median_sale_per_list': NotRequired[str],
|
|
7661
|
+
'median_sale_per_sqft': NotRequired[str],
|
|
7662
|
+
'median_sale_price': NotRequired[str],
|
|
7663
|
+
'num_homes_on_market': NotRequired[str],
|
|
7664
|
+
'num_homes_sold': NotRequired[str],
|
|
7665
|
+
'region_id': NotRequired[int],
|
|
7666
|
+
'region_type': NotRequired[int],
|
|
7667
|
+
'yoy_sale_per_sqft': NotRequired[str],
|
|
7668
|
+
'yoy_sale_price': NotRequired[str],
|
|
7669
|
+
}, total=False)
|
|
7670
|
+
|
|
7671
|
+
ModelRedfinSearchResponse = TypedDict('ModelRedfinSearchResponse', {
|
|
7672
|
+
'location': NotRequired[str],
|
|
7673
|
+
'page': NotRequired[int],
|
|
7674
|
+
'region_id': NotRequired[int],
|
|
7675
|
+
'region_type': NotRequired[int],
|
|
7676
|
+
'results': NotRequired[list[ModelRedfinPropertyItem]],
|
|
7677
|
+
}, total=False)
|
|
7678
|
+
|
|
7679
|
+
ModelRedfinSimilarResponse = TypedDict('ModelRedfinSimilarResponse', {
|
|
7680
|
+
'property_id': NotRequired[str],
|
|
7681
|
+
'results': NotRequired[list[ModelRedfinPropertyItem]],
|
|
7682
|
+
}, total=False)
|
|
7683
|
+
|
|
7479
7684
|
ModelReferralsReferralAttributionDoc = TypedDict('ModelReferralsReferralAttributionDoc', {
|
|
7480
7685
|
'campaign': NotRequired[str],
|
|
7481
7686
|
'code': NotRequired[str],
|
|
@@ -8816,6 +9021,7 @@ ModelSpotifyCountryHubContentMeta = TypedDict('ModelSpotifyCountryHubContentMeta
|
|
|
8816
9021
|
'fetchedAt': NotRequired[str],
|
|
8817
9022
|
'itemCount': NotRequired[int],
|
|
8818
9023
|
'operationName': NotRequired[str],
|
|
9024
|
+
'partialErrors': NotRequired[int],
|
|
8819
9025
|
}, total=False)
|
|
8820
9026
|
|
|
8821
9027
|
ModelSpotifyCountryHubContentResponse = TypedDict('ModelSpotifyCountryHubContentResponse', {
|
|
@@ -8850,6 +9056,7 @@ ModelSpotifyCountryHubMeta = TypedDict('ModelSpotifyCountryHubMeta', {
|
|
|
8850
9056
|
'fetchedAt': NotRequired[str],
|
|
8851
9057
|
'itemCount': NotRequired[int],
|
|
8852
9058
|
'operationName': NotRequired[str],
|
|
9059
|
+
'partialErrors': NotRequired[int],
|
|
8853
9060
|
'sectionCount': NotRequired[int],
|
|
8854
9061
|
}, total=False)
|
|
8855
9062
|
|
|
@@ -10697,6 +10904,65 @@ ModelUserUserRotateApikeyResponseDoc = TypedDict('ModelUserUserRotateApikeyRespo
|
|
|
10697
10904
|
'msg': NotRequired[str],
|
|
10698
10905
|
}, total=False)
|
|
10699
10906
|
|
|
10907
|
+
ModelWebScrapeInfo = TypedDict('ModelWebScrapeInfo', {
|
|
10908
|
+
'backend': NotRequired[str],
|
|
10909
|
+
'cache_state': NotRequired[str],
|
|
10910
|
+
'cached_at': NotRequired[str],
|
|
10911
|
+
'escalated': NotRequired[bool],
|
|
10912
|
+
'method': NotRequired[str],
|
|
10913
|
+
}, total=False)
|
|
10914
|
+
|
|
10915
|
+
ModelWebScrapeLink = TypedDict('ModelWebScrapeLink', {
|
|
10916
|
+
'href': NotRequired[str],
|
|
10917
|
+
'rel': NotRequired[str],
|
|
10918
|
+
'text': NotRequired[str],
|
|
10919
|
+
}, total=False)
|
|
10920
|
+
|
|
10921
|
+
ModelWebScrapeMetadata = TypedDict('ModelWebScrapeMetadata', {
|
|
10922
|
+
'author': NotRequired[str],
|
|
10923
|
+
'canonical_url': NotRequired[str],
|
|
10924
|
+
'content_type': NotRequired[str],
|
|
10925
|
+
'description': NotRequired[str],
|
|
10926
|
+
'final_url': NotRequired[str],
|
|
10927
|
+
'image': NotRequired[str],
|
|
10928
|
+
'language': NotRequired[str],
|
|
10929
|
+
'modified_at': NotRequired[str],
|
|
10930
|
+
'published_at': NotRequired[str],
|
|
10931
|
+
'section': NotRequired[str],
|
|
10932
|
+
'site_name': NotRequired[str],
|
|
10933
|
+
'source_url': NotRequired[str],
|
|
10934
|
+
'status_code': NotRequired[int],
|
|
10935
|
+
'title': NotRequired[str],
|
|
10936
|
+
}, total=False)
|
|
10937
|
+
|
|
10938
|
+
ModelWebScrapeOption = TypedDict('ModelWebScrapeOption', {
|
|
10939
|
+
'backend': NotRequired[str],
|
|
10940
|
+
'formats': NotRequired[list[str]],
|
|
10941
|
+
'max_age': NotRequired[int],
|
|
10942
|
+
'only_main_content': NotRequired[bool],
|
|
10943
|
+
'proxy': NotRequired[str],
|
|
10944
|
+
'render': NotRequired[Literal['auto', 'http', 'browser', 'unblocker']],
|
|
10945
|
+
'store_in_cache': NotRequired[bool],
|
|
10946
|
+
'url': Required[str],
|
|
10947
|
+
'wait_for': NotRequired[int],
|
|
10948
|
+
}, total=False)
|
|
10949
|
+
|
|
10950
|
+
ModelWebScrapeResult = TypedDict('ModelWebScrapeResult', {
|
|
10951
|
+
'html': NotRequired[str],
|
|
10952
|
+
'link_details': NotRequired[list[ModelWebScrapeLink]],
|
|
10953
|
+
'links': NotRequired[list[str]],
|
|
10954
|
+
'markdown': NotRequired[str],
|
|
10955
|
+
'metadata': NotRequired[ModelWebScrapeMetadata],
|
|
10956
|
+
'raw_html': NotRequired[str],
|
|
10957
|
+
'scrape': NotRequired[ModelWebScrapeInfo],
|
|
10958
|
+
}, total=False)
|
|
10959
|
+
|
|
10960
|
+
ModelWebScrapeResponseDoc = TypedDict('ModelWebScrapeResponseDoc', {
|
|
10961
|
+
'code': NotRequired[int],
|
|
10962
|
+
'data': NotRequired[ModelWebScrapeResult],
|
|
10963
|
+
'msg': NotRequired[str],
|
|
10964
|
+
}, total=False)
|
|
10965
|
+
|
|
10700
10966
|
ModelYahoofinanceActionEvents = TypedDict('ModelYahoofinanceActionEvents', {
|
|
10701
10967
|
'capital_gains': NotRequired[list[dict[str, Any]]],
|
|
10702
10968
|
'dividends': NotRequired[list[dict[str, Any]]],
|
|
@@ -12448,6 +12714,15 @@ CoinGeckoTrendingParams = TypedDict('CoinGeckoTrendingParams', {
|
|
|
12448
12714
|
'vs_currency': NotRequired[Literal['btc', 'eth', 'ltc', 'bch', 'bnb', 'eos', 'xrp', 'xlm', 'link', 'dot', 'yfi', 'sol', 'usd', 'aed', 'ars', 'aud', 'bdt', 'bhd', 'bmd', 'brl', 'cad', 'chf', 'clp', 'cny', 'czk', 'dkk', 'eur', 'gbp', 'gel', 'hkd', 'huf', 'idr', 'ils', 'inr', 'jpy', 'krw', 'kwd', 'lkr', 'mmk', 'mxn', 'myr', 'ngn', 'nok', 'nzd', 'php', 'pkr', 'pln', 'rub', 'sar', 'sek', 'sgd', 'thb', 'try', 'twd', 'uah', 'vef', 'vnd', 'zar', 'xdr', 'xag', 'xau', 'bits', 'sats']],
|
|
12449
12715
|
}, total=False)
|
|
12450
12716
|
|
|
12717
|
+
WebContactBody = ModelContactContactRequest
|
|
12718
|
+
WebContactResponse = ModelContactContactResponseDoc
|
|
12719
|
+
WebContactParams = TypedDict('WebContactParams', {
|
|
12720
|
+
'_response_type': NotRequired[ResponseType],
|
|
12721
|
+
'_timeout': NotRequired[float],
|
|
12722
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
12723
|
+
'option': Required[WebContactBody],
|
|
12724
|
+
}, total=False)
|
|
12725
|
+
|
|
12451
12726
|
DatasetsListResponse = ModelDatasetsListResponseDoc
|
|
12452
12727
|
DatasetsListParams = TypedDict('DatasetsListParams', {
|
|
12453
12728
|
'_response_type': NotRequired[ResponseType],
|
|
@@ -12525,6 +12800,15 @@ DatasetsGoogleMapBusinessesSearchParams = TypedDict('DatasetsGoogleMapBusinesses
|
|
|
12525
12800
|
'page_size': NotRequired[int],
|
|
12526
12801
|
}, total=False)
|
|
12527
12802
|
|
|
12803
|
+
WebAntibotCheckBody = ModelDiagnosticsAntibotCheckRequest
|
|
12804
|
+
WebAntibotCheckResponse = ModelDiagnosticsAntibotCheckResponseDoc
|
|
12805
|
+
WebAntibotCheckParams = TypedDict('WebAntibotCheckParams', {
|
|
12806
|
+
'_response_type': NotRequired[ResponseType],
|
|
12807
|
+
'_timeout': NotRequired[float],
|
|
12808
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
12809
|
+
'request': Required[WebAntibotCheckBody],
|
|
12810
|
+
}, total=False)
|
|
12811
|
+
|
|
12528
12812
|
EBayEbayItemResponse = ModelEbayItemResponseDoc
|
|
12529
12813
|
EBayEbayItemParams = TypedDict('EBayEbayItemParams', {
|
|
12530
12814
|
'_response_type': NotRequired[ResponseType],
|
|
@@ -14706,6 +14990,57 @@ RedditUserPostsParams = TypedDict('RedditUserPostsParams', {
|
|
|
14706
14990
|
'after': NotRequired[str],
|
|
14707
14991
|
}, total=False)
|
|
14708
14992
|
|
|
14993
|
+
RedfinEstimateResponse = ModelRedfinEstimateResponse
|
|
14994
|
+
RedfinEstimateParams = TypedDict('RedfinEstimateParams', {
|
|
14995
|
+
'_response_type': NotRequired[ResponseType],
|
|
14996
|
+
'_timeout': NotRequired[float],
|
|
14997
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
14998
|
+
'property_id': Required[str],
|
|
14999
|
+
}, total=False)
|
|
15000
|
+
|
|
15001
|
+
RedfinPropertyResponse = ModelRedfinPropertyResponse
|
|
15002
|
+
RedfinPropertyParams = TypedDict('RedfinPropertyParams', {
|
|
15003
|
+
'_response_type': NotRequired[ResponseType],
|
|
15004
|
+
'_timeout': NotRequired[float],
|
|
15005
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
15006
|
+
'url': NotRequired[str],
|
|
15007
|
+
'property_id': NotRequired[str],
|
|
15008
|
+
'listing_id': NotRequired[str],
|
|
15009
|
+
}, total=False)
|
|
15010
|
+
|
|
15011
|
+
RedfinRegionTrendsResponse = ModelRedfinRegionTrendsResponse
|
|
15012
|
+
RedfinRegionTrendsParams = TypedDict('RedfinRegionTrendsParams', {
|
|
15013
|
+
'_response_type': NotRequired[ResponseType],
|
|
15014
|
+
'_timeout': NotRequired[float],
|
|
15015
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
15016
|
+
'region_id': Required[int],
|
|
15017
|
+
'region_type': NotRequired[int],
|
|
15018
|
+
}, total=False)
|
|
15019
|
+
|
|
15020
|
+
RedfinSearchResponse = ModelRedfinSearchResponse
|
|
15021
|
+
RedfinSearchParams = TypedDict('RedfinSearchParams', {
|
|
15022
|
+
'_response_type': NotRequired[ResponseType],
|
|
15023
|
+
'_timeout': NotRequired[float],
|
|
15024
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
15025
|
+
'location': NotRequired[str],
|
|
15026
|
+
'page': NotRequired[int],
|
|
15027
|
+
'region_id': NotRequired[int],
|
|
15028
|
+
'region_type': NotRequired[int],
|
|
15029
|
+
'status': NotRequired[str],
|
|
15030
|
+
'min_price': NotRequired[int],
|
|
15031
|
+
'max_price': NotRequired[int],
|
|
15032
|
+
'min_beds': NotRequired[int],
|
|
15033
|
+
'min_baths': NotRequired[float],
|
|
15034
|
+
}, total=False)
|
|
15035
|
+
|
|
15036
|
+
RedfinSimilarResponse = ModelRedfinSimilarResponse
|
|
15037
|
+
RedfinSimilarParams = TypedDict('RedfinSimilarParams', {
|
|
15038
|
+
'_response_type': NotRequired[ResponseType],
|
|
15039
|
+
'_timeout': NotRequired[float],
|
|
15040
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
15041
|
+
'property_id': Required[str],
|
|
15042
|
+
}, total=False)
|
|
15043
|
+
|
|
14709
15044
|
ReferralsClickBody = ModelReferralsReferralClickRequestDoc
|
|
14710
15045
|
ReferralsClickResponse = ModelReferralsReferralClickResponseDoc
|
|
14711
15046
|
ReferralsClickParams = TypedDict('ReferralsClickParams', {
|
|
@@ -15989,6 +16324,15 @@ UserMeApiKeysRevealParams = TypedDict('UserMeApiKeysRevealParams', {
|
|
|
15989
16324
|
'id': Required[str],
|
|
15990
16325
|
}, total=False)
|
|
15991
16326
|
|
|
16327
|
+
WebScrapeBody = ModelWebScrapeOption
|
|
16328
|
+
WebScrapeResponse = ModelWebScrapeResponseDoc
|
|
16329
|
+
WebScrapeParams = TypedDict('WebScrapeParams', {
|
|
16330
|
+
'_response_type': NotRequired[ResponseType],
|
|
16331
|
+
'_timeout': NotRequired[float],
|
|
16332
|
+
'_headers': NotRequired[Mapping[str, str]],
|
|
16333
|
+
'scrapeOption': Required[WebScrapeBody],
|
|
16334
|
+
}, total=False)
|
|
16335
|
+
|
|
15992
16336
|
YahooFinanceCalendarsResponse = ModelYahoofinanceCalendarsResponseDoc
|
|
15993
16337
|
YahooFinanceCalendarsParams = TypedDict('YahooFinanceCalendarsParams', {
|
|
15994
16338
|
'_response_type': NotRequired[ResponseType],
|
|
@@ -16599,6 +16943,11 @@ class CoinGeckoGroup:
|
|
|
16599
16943
|
def treasuries(self, **params: Unpack[CoinGeckoTreasuriesParams]) -> CoinGeckoTreasuriesResponse: ...
|
|
16600
16944
|
def trending(self, **params: Unpack[CoinGeckoTrendingParams]) -> CoinGeckoTrendingResponse: ...
|
|
16601
16945
|
|
|
16946
|
+
class WebGroup:
|
|
16947
|
+
def contact(self, **params: Unpack[WebContactParams]) -> WebContactResponse: ...
|
|
16948
|
+
def antibot_check(self, **params: Unpack[WebAntibotCheckParams]) -> WebAntibotCheckResponse: ...
|
|
16949
|
+
def scrape(self, **params: Unpack[WebScrapeParams]) -> WebScrapeResponse: ...
|
|
16950
|
+
|
|
16602
16951
|
class DatasetsGroup:
|
|
16603
16952
|
def list(self, **params: Unpack[DatasetsListParams]) -> DatasetsListResponse: ...
|
|
16604
16953
|
def google_map_businesses_facets(self, **params: Unpack[DatasetsGoogleMapBusinessesFacetsParams]) -> DatasetsGoogleMapBusinessesFacetsResponse: ...
|
|
@@ -16858,6 +17207,13 @@ class RedditGroup:
|
|
|
16858
17207
|
def user_comments(self, **params: Unpack[RedditUserCommentsParams]) -> RedditUserCommentsResponse: ...
|
|
16859
17208
|
def user_posts(self, **params: Unpack[RedditUserPostsParams]) -> RedditUserPostsResponse: ...
|
|
16860
17209
|
|
|
17210
|
+
class RedfinGroup:
|
|
17211
|
+
def estimate(self, **params: Unpack[RedfinEstimateParams]) -> RedfinEstimateResponse: ...
|
|
17212
|
+
def property(self, **params: Unpack[RedfinPropertyParams]) -> RedfinPropertyResponse: ...
|
|
17213
|
+
def region_trends(self, **params: Unpack[RedfinRegionTrendsParams]) -> RedfinRegionTrendsResponse: ...
|
|
17214
|
+
def search(self, **params: Unpack[RedfinSearchParams]) -> RedfinSearchResponse: ...
|
|
17215
|
+
def similar(self, **params: Unpack[RedfinSimilarParams]) -> RedfinSimilarResponse: ...
|
|
17216
|
+
|
|
16861
17217
|
class ReferralsGroup:
|
|
16862
17218
|
def click(self, **params: Unpack[ReferralsClickParams]) -> ReferralsClickResponse: ...
|
|
16863
17219
|
def me(self, **params: Unpack[ReferralsMeParams]) -> ReferralsMeResponse: ...
|
|
@@ -17151,11 +17507,13 @@ OperationId = Literal[
|
|
|
17151
17507
|
'coingecko-token-unlocks',
|
|
17152
17508
|
'coingecko-treasuries',
|
|
17153
17509
|
'coingecko-trending',
|
|
17510
|
+
'contact',
|
|
17154
17511
|
'datasets-list',
|
|
17155
17512
|
'datasets-google-map-businesses-facets',
|
|
17156
17513
|
'datasets-google-map-businesses-item',
|
|
17157
17514
|
'datasets-google-map-businesses-nearby',
|
|
17158
17515
|
'datasets-google-map-businesses-search',
|
|
17516
|
+
'antibot-check',
|
|
17159
17517
|
'ebay-item',
|
|
17160
17518
|
'ebay-search',
|
|
17161
17519
|
'ebay-seller',
|
|
@@ -17380,6 +17738,11 @@ OperationId = Literal[
|
|
|
17380
17738
|
'reddit-trends',
|
|
17381
17739
|
'reddit-user-comments',
|
|
17382
17740
|
'reddit-user-posts',
|
|
17741
|
+
'redfin-estimate',
|
|
17742
|
+
'redfin-property',
|
|
17743
|
+
'redfin-region-trends',
|
|
17744
|
+
'redfin-search',
|
|
17745
|
+
'redfin-similar',
|
|
17383
17746
|
'referrals-click',
|
|
17384
17747
|
'referrals-me',
|
|
17385
17748
|
'referrals-me-events',
|
|
@@ -17504,6 +17867,7 @@ OperationId = Literal[
|
|
|
17504
17867
|
'user-me-api-keys',
|
|
17505
17868
|
'user-me-api-keys-rotate',
|
|
17506
17869
|
'user-me-api-keys-reveal',
|
|
17870
|
+
'web-scrape',
|
|
17507
17871
|
'yahoo-finance-calendars',
|
|
17508
17872
|
'yahoo-finance-calendar',
|
|
17509
17873
|
'yahoo-finance-download',
|
|
@@ -17572,6 +17936,7 @@ class CrawloraClient:
|
|
|
17572
17936
|
brand: BrandGroup
|
|
17573
17937
|
brave: BraveGroup
|
|
17574
17938
|
coin_gecko: CoinGeckoGroup
|
|
17939
|
+
web: WebGroup
|
|
17575
17940
|
datasets: DatasetsGroup
|
|
17576
17941
|
e_bay: EBayGroup
|
|
17577
17942
|
geocoding: GeocodingGroup
|
|
@@ -17587,6 +17952,7 @@ class CrawloraClient:
|
|
|
17587
17952
|
polymarket: PolymarketGroup
|
|
17588
17953
|
product_hunt: ProductHuntGroup
|
|
17589
17954
|
reddit: RedditGroup
|
|
17955
|
+
redfin: RedfinGroup
|
|
17590
17956
|
referrals: ReferralsGroup
|
|
17591
17957
|
rotten_tomatoes: RottenTomatoesGroup
|
|
17592
17958
|
shop_app: ShopAppGroup
|
|
@@ -18679,6 +19045,18 @@ class CrawloraClient:
|
|
|
18679
19045
|
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
18680
19046
|
) -> CoinGeckoTrendingResponse: ...
|
|
18681
19047
|
@overload
|
|
19048
|
+
def operation(
|
|
19049
|
+
self,
|
|
19050
|
+
operation_id: Literal['contact'],
|
|
19051
|
+
params: WebContactParams,
|
|
19052
|
+
*,
|
|
19053
|
+
response_type: ResponseType = ...,
|
|
19054
|
+
timeout: float | None = ...,
|
|
19055
|
+
headers: Mapping[str, str] | None = ...,
|
|
19056
|
+
retries: int | None = ...,
|
|
19057
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
19058
|
+
) -> WebContactResponse: ...
|
|
19059
|
+
@overload
|
|
18682
19060
|
def operation(
|
|
18683
19061
|
self,
|
|
18684
19062
|
operation_id: Literal['datasets-list'],
|
|
@@ -18739,6 +19117,18 @@ class CrawloraClient:
|
|
|
18739
19117
|
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
18740
19118
|
) -> DatasetsGoogleMapBusinessesSearchResponse: ...
|
|
18741
19119
|
@overload
|
|
19120
|
+
def operation(
|
|
19121
|
+
self,
|
|
19122
|
+
operation_id: Literal['antibot-check'],
|
|
19123
|
+
params: WebAntibotCheckParams,
|
|
19124
|
+
*,
|
|
19125
|
+
response_type: ResponseType = ...,
|
|
19126
|
+
timeout: float | None = ...,
|
|
19127
|
+
headers: Mapping[str, str] | None = ...,
|
|
19128
|
+
retries: int | None = ...,
|
|
19129
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
19130
|
+
) -> WebAntibotCheckResponse: ...
|
|
19131
|
+
@overload
|
|
18742
19132
|
def operation(
|
|
18743
19133
|
self,
|
|
18744
19134
|
operation_id: Literal['ebay-item'],
|
|
@@ -21427,6 +21817,66 @@ class CrawloraClient:
|
|
|
21427
21817
|
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
21428
21818
|
) -> RedditUserPostsResponse: ...
|
|
21429
21819
|
@overload
|
|
21820
|
+
def operation(
|
|
21821
|
+
self,
|
|
21822
|
+
operation_id: Literal['redfin-estimate'],
|
|
21823
|
+
params: RedfinEstimateParams,
|
|
21824
|
+
*,
|
|
21825
|
+
response_type: ResponseType = ...,
|
|
21826
|
+
timeout: float | None = ...,
|
|
21827
|
+
headers: Mapping[str, str] | None = ...,
|
|
21828
|
+
retries: int | None = ...,
|
|
21829
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
21830
|
+
) -> RedfinEstimateResponse: ...
|
|
21831
|
+
@overload
|
|
21832
|
+
def operation(
|
|
21833
|
+
self,
|
|
21834
|
+
operation_id: Literal['redfin-property'],
|
|
21835
|
+
params: RedfinPropertyParams = ...,
|
|
21836
|
+
*,
|
|
21837
|
+
response_type: ResponseType = ...,
|
|
21838
|
+
timeout: float | None = ...,
|
|
21839
|
+
headers: Mapping[str, str] | None = ...,
|
|
21840
|
+
retries: int | None = ...,
|
|
21841
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
21842
|
+
) -> RedfinPropertyResponse: ...
|
|
21843
|
+
@overload
|
|
21844
|
+
def operation(
|
|
21845
|
+
self,
|
|
21846
|
+
operation_id: Literal['redfin-region-trends'],
|
|
21847
|
+
params: RedfinRegionTrendsParams,
|
|
21848
|
+
*,
|
|
21849
|
+
response_type: ResponseType = ...,
|
|
21850
|
+
timeout: float | None = ...,
|
|
21851
|
+
headers: Mapping[str, str] | None = ...,
|
|
21852
|
+
retries: int | None = ...,
|
|
21853
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
21854
|
+
) -> RedfinRegionTrendsResponse: ...
|
|
21855
|
+
@overload
|
|
21856
|
+
def operation(
|
|
21857
|
+
self,
|
|
21858
|
+
operation_id: Literal['redfin-search'],
|
|
21859
|
+
params: RedfinSearchParams = ...,
|
|
21860
|
+
*,
|
|
21861
|
+
response_type: ResponseType = ...,
|
|
21862
|
+
timeout: float | None = ...,
|
|
21863
|
+
headers: Mapping[str, str] | None = ...,
|
|
21864
|
+
retries: int | None = ...,
|
|
21865
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
21866
|
+
) -> RedfinSearchResponse: ...
|
|
21867
|
+
@overload
|
|
21868
|
+
def operation(
|
|
21869
|
+
self,
|
|
21870
|
+
operation_id: Literal['redfin-similar'],
|
|
21871
|
+
params: RedfinSimilarParams,
|
|
21872
|
+
*,
|
|
21873
|
+
response_type: ResponseType = ...,
|
|
21874
|
+
timeout: float | None = ...,
|
|
21875
|
+
headers: Mapping[str, str] | None = ...,
|
|
21876
|
+
retries: int | None = ...,
|
|
21877
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
21878
|
+
) -> RedfinSimilarResponse: ...
|
|
21879
|
+
@overload
|
|
21430
21880
|
def operation(
|
|
21431
21881
|
self,
|
|
21432
21882
|
operation_id: Literal['referrals-click'],
|
|
@@ -22915,6 +23365,18 @@ class CrawloraClient:
|
|
|
22915
23365
|
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
22916
23366
|
) -> UserMeApiKeysRevealResponse: ...
|
|
22917
23367
|
@overload
|
|
23368
|
+
def operation(
|
|
23369
|
+
self,
|
|
23370
|
+
operation_id: Literal['web-scrape'],
|
|
23371
|
+
params: WebScrapeParams,
|
|
23372
|
+
*,
|
|
23373
|
+
response_type: ResponseType = ...,
|
|
23374
|
+
timeout: float | None = ...,
|
|
23375
|
+
headers: Mapping[str, str] | None = ...,
|
|
23376
|
+
retries: int | None = ...,
|
|
23377
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
23378
|
+
) -> WebScrapeResponse: ...
|
|
23379
|
+
@overload
|
|
22918
23380
|
def operation(
|
|
22919
23381
|
self,
|
|
22920
23382
|
operation_id: Literal['yahoo-finance-calendars'],
|
|
@@ -24583,6 +25045,18 @@ class CrawloraClient:
|
|
|
24583
25045
|
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
24584
25046
|
) -> CoinGeckoTrendingResponse: ...
|
|
24585
25047
|
@overload
|
|
25048
|
+
def request(
|
|
25049
|
+
self,
|
|
25050
|
+
operation_id: Literal['contact'],
|
|
25051
|
+
params: WebContactParams,
|
|
25052
|
+
*,
|
|
25053
|
+
response_type: ResponseType = ...,
|
|
25054
|
+
timeout: float | None = ...,
|
|
25055
|
+
headers: Mapping[str, str] | None = ...,
|
|
25056
|
+
retries: int | None = ...,
|
|
25057
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
25058
|
+
) -> WebContactResponse: ...
|
|
25059
|
+
@overload
|
|
24586
25060
|
def request(
|
|
24587
25061
|
self,
|
|
24588
25062
|
operation_id: Literal['datasets-list'],
|
|
@@ -24643,6 +25117,18 @@ class CrawloraClient:
|
|
|
24643
25117
|
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
24644
25118
|
) -> DatasetsGoogleMapBusinessesSearchResponse: ...
|
|
24645
25119
|
@overload
|
|
25120
|
+
def request(
|
|
25121
|
+
self,
|
|
25122
|
+
operation_id: Literal['antibot-check'],
|
|
25123
|
+
params: WebAntibotCheckParams,
|
|
25124
|
+
*,
|
|
25125
|
+
response_type: ResponseType = ...,
|
|
25126
|
+
timeout: float | None = ...,
|
|
25127
|
+
headers: Mapping[str, str] | None = ...,
|
|
25128
|
+
retries: int | None = ...,
|
|
25129
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
25130
|
+
) -> WebAntibotCheckResponse: ...
|
|
25131
|
+
@overload
|
|
24646
25132
|
def request(
|
|
24647
25133
|
self,
|
|
24648
25134
|
operation_id: Literal['ebay-item'],
|
|
@@ -27331,6 +27817,66 @@ class CrawloraClient:
|
|
|
27331
27817
|
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
27332
27818
|
) -> RedditUserPostsResponse: ...
|
|
27333
27819
|
@overload
|
|
27820
|
+
def request(
|
|
27821
|
+
self,
|
|
27822
|
+
operation_id: Literal['redfin-estimate'],
|
|
27823
|
+
params: RedfinEstimateParams,
|
|
27824
|
+
*,
|
|
27825
|
+
response_type: ResponseType = ...,
|
|
27826
|
+
timeout: float | None = ...,
|
|
27827
|
+
headers: Mapping[str, str] | None = ...,
|
|
27828
|
+
retries: int | None = ...,
|
|
27829
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
27830
|
+
) -> RedfinEstimateResponse: ...
|
|
27831
|
+
@overload
|
|
27832
|
+
def request(
|
|
27833
|
+
self,
|
|
27834
|
+
operation_id: Literal['redfin-property'],
|
|
27835
|
+
params: RedfinPropertyParams = ...,
|
|
27836
|
+
*,
|
|
27837
|
+
response_type: ResponseType = ...,
|
|
27838
|
+
timeout: float | None = ...,
|
|
27839
|
+
headers: Mapping[str, str] | None = ...,
|
|
27840
|
+
retries: int | None = ...,
|
|
27841
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
27842
|
+
) -> RedfinPropertyResponse: ...
|
|
27843
|
+
@overload
|
|
27844
|
+
def request(
|
|
27845
|
+
self,
|
|
27846
|
+
operation_id: Literal['redfin-region-trends'],
|
|
27847
|
+
params: RedfinRegionTrendsParams,
|
|
27848
|
+
*,
|
|
27849
|
+
response_type: ResponseType = ...,
|
|
27850
|
+
timeout: float | None = ...,
|
|
27851
|
+
headers: Mapping[str, str] | None = ...,
|
|
27852
|
+
retries: int | None = ...,
|
|
27853
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
27854
|
+
) -> RedfinRegionTrendsResponse: ...
|
|
27855
|
+
@overload
|
|
27856
|
+
def request(
|
|
27857
|
+
self,
|
|
27858
|
+
operation_id: Literal['redfin-search'],
|
|
27859
|
+
params: RedfinSearchParams = ...,
|
|
27860
|
+
*,
|
|
27861
|
+
response_type: ResponseType = ...,
|
|
27862
|
+
timeout: float | None = ...,
|
|
27863
|
+
headers: Mapping[str, str] | None = ...,
|
|
27864
|
+
retries: int | None = ...,
|
|
27865
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
27866
|
+
) -> RedfinSearchResponse: ...
|
|
27867
|
+
@overload
|
|
27868
|
+
def request(
|
|
27869
|
+
self,
|
|
27870
|
+
operation_id: Literal['redfin-similar'],
|
|
27871
|
+
params: RedfinSimilarParams,
|
|
27872
|
+
*,
|
|
27873
|
+
response_type: ResponseType = ...,
|
|
27874
|
+
timeout: float | None = ...,
|
|
27875
|
+
headers: Mapping[str, str] | None = ...,
|
|
27876
|
+
retries: int | None = ...,
|
|
27877
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
27878
|
+
) -> RedfinSimilarResponse: ...
|
|
27879
|
+
@overload
|
|
27334
27880
|
def request(
|
|
27335
27881
|
self,
|
|
27336
27882
|
operation_id: Literal['referrals-click'],
|
|
@@ -28819,6 +29365,18 @@ class CrawloraClient:
|
|
|
28819
29365
|
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
28820
29366
|
) -> UserMeApiKeysRevealResponse: ...
|
|
28821
29367
|
@overload
|
|
29368
|
+
def request(
|
|
29369
|
+
self,
|
|
29370
|
+
operation_id: Literal['web-scrape'],
|
|
29371
|
+
params: WebScrapeParams,
|
|
29372
|
+
*,
|
|
29373
|
+
response_type: ResponseType = ...,
|
|
29374
|
+
timeout: float | None = ...,
|
|
29375
|
+
headers: Mapping[str, str] | None = ...,
|
|
29376
|
+
retries: int | None = ...,
|
|
29377
|
+
retry_predicate: Callable[[int, BaseException | None], bool] | None = ...,
|
|
29378
|
+
) -> WebScrapeResponse: ...
|
|
29379
|
+
@overload
|
|
28822
29380
|
def request(
|
|
28823
29381
|
self,
|
|
28824
29382
|
operation_id: Literal['yahoo-finance-calendars'],
|
|
@@ -92,6 +92,17 @@ OPERATIONS = {'airbnb-room': {'bodyParam': None,
|
|
|
92
92
|
'produces': ['application/json'],
|
|
93
93
|
'queryParams': [],
|
|
94
94
|
'security': ['ApiKeyAuth']},
|
|
95
|
+
'antibot-check': {'bodyParam': 'request',
|
|
96
|
+
'bodyRequired': True,
|
|
97
|
+
'consumes': ['application/json'],
|
|
98
|
+
'formParams': [],
|
|
99
|
+
'id': 'antibot-check',
|
|
100
|
+
'method': 'POST',
|
|
101
|
+
'path': '/diagnostics/antibot-check',
|
|
102
|
+
'pathParams': [],
|
|
103
|
+
'produces': ['application/json'],
|
|
104
|
+
'queryParams': [],
|
|
105
|
+
'security': ['ApiKeyAuth']},
|
|
95
106
|
'apple-podcasts-charts': {'bodyParam': None,
|
|
96
107
|
'bodyRequired': False,
|
|
97
108
|
'consumes': ['application/json'],
|
|
@@ -2413,6 +2424,17 @@ OPERATIONS = {'airbnb-room': {'bodyParam': None,
|
|
|
2413
2424
|
'name': 'vs_currency',
|
|
2414
2425
|
'type': 'string'}],
|
|
2415
2426
|
'security': ['ApiKeyAuth']},
|
|
2427
|
+
'contact': {'bodyParam': 'option',
|
|
2428
|
+
'bodyRequired': True,
|
|
2429
|
+
'consumes': ['application/json'],
|
|
2430
|
+
'formParams': [],
|
|
2431
|
+
'id': 'contact',
|
|
2432
|
+
'method': 'POST',
|
|
2433
|
+
'path': '/contact',
|
|
2434
|
+
'pathParams': [],
|
|
2435
|
+
'produces': ['application/json'],
|
|
2436
|
+
'queryParams': [],
|
|
2437
|
+
'security': ['ApiKeyAuth']},
|
|
2416
2438
|
'datasets-google-map-businesses-facets': {'bodyParam': None,
|
|
2417
2439
|
'bodyRequired': False,
|
|
2418
2440
|
'consumes': ['application/json'],
|
|
@@ -5938,6 +5960,73 @@ OPERATIONS = {'airbnb-room': {'bodyParam': None,
|
|
|
5938
5960
|
'queryParams': [{'in': 'query', 'name': 'limit', 'type': 'integer'},
|
|
5939
5961
|
{'in': 'query', 'name': 'after', 'type': 'string'}],
|
|
5940
5962
|
'security': ['ApiKeyAuth']},
|
|
5963
|
+
'redfin-estimate': {'bodyParam': None,
|
|
5964
|
+
'bodyRequired': False,
|
|
5965
|
+
'consumes': ['application/json'],
|
|
5966
|
+
'formParams': [],
|
|
5967
|
+
'id': 'redfin-estimate',
|
|
5968
|
+
'method': 'GET',
|
|
5969
|
+
'path': '/redfin/estimate',
|
|
5970
|
+
'pathParams': [],
|
|
5971
|
+
'produces': ['application/json'],
|
|
5972
|
+
'queryParams': [{'in': 'query', 'name': 'property_id', 'required': True, 'type': 'string'}],
|
|
5973
|
+
'security': ['ApiKeyAuth']},
|
|
5974
|
+
'redfin-property': {'bodyParam': None,
|
|
5975
|
+
'bodyRequired': False,
|
|
5976
|
+
'consumes': ['application/json'],
|
|
5977
|
+
'formParams': [],
|
|
5978
|
+
'id': 'redfin-property',
|
|
5979
|
+
'method': 'GET',
|
|
5980
|
+
'path': '/redfin/property',
|
|
5981
|
+
'pathParams': [],
|
|
5982
|
+
'produces': ['application/json'],
|
|
5983
|
+
'queryParams': [{'in': 'query', 'name': 'url', 'type': 'string'},
|
|
5984
|
+
{'in': 'query', 'name': 'property_id', 'type': 'string'},
|
|
5985
|
+
{'in': 'query', 'name': 'listing_id', 'type': 'string'}],
|
|
5986
|
+
'security': ['ApiKeyAuth']},
|
|
5987
|
+
'redfin-region-trends': {'bodyParam': None,
|
|
5988
|
+
'bodyRequired': False,
|
|
5989
|
+
'consumes': ['application/json'],
|
|
5990
|
+
'formParams': [],
|
|
5991
|
+
'id': 'redfin-region-trends',
|
|
5992
|
+
'method': 'GET',
|
|
5993
|
+
'path': '/redfin/region-trends',
|
|
5994
|
+
'pathParams': [],
|
|
5995
|
+
'produces': ['application/json'],
|
|
5996
|
+
'queryParams': [{'in': 'query', 'name': 'region_id', 'required': True, 'type': 'integer'},
|
|
5997
|
+
{'in': 'query', 'name': 'region_type', 'type': 'integer'}],
|
|
5998
|
+
'security': ['ApiKeyAuth']},
|
|
5999
|
+
'redfin-search': {'bodyParam': None,
|
|
6000
|
+
'bodyRequired': False,
|
|
6001
|
+
'consumes': ['application/json'],
|
|
6002
|
+
'formParams': [],
|
|
6003
|
+
'id': 'redfin-search',
|
|
6004
|
+
'method': 'GET',
|
|
6005
|
+
'paginatable': True,
|
|
6006
|
+
'path': '/redfin/search',
|
|
6007
|
+
'pathParams': [],
|
|
6008
|
+
'produces': ['application/json'],
|
|
6009
|
+
'queryParams': [{'in': 'query', 'name': 'location', 'type': 'string'},
|
|
6010
|
+
{'in': 'query', 'name': 'page', 'type': 'integer'},
|
|
6011
|
+
{'in': 'query', 'name': 'region_id', 'type': 'integer'},
|
|
6012
|
+
{'in': 'query', 'name': 'region_type', 'type': 'integer'},
|
|
6013
|
+
{'in': 'query', 'name': 'status', 'type': 'string'},
|
|
6014
|
+
{'in': 'query', 'name': 'min_price', 'type': 'integer'},
|
|
6015
|
+
{'in': 'query', 'name': 'max_price', 'type': 'integer'},
|
|
6016
|
+
{'in': 'query', 'name': 'min_beds', 'type': 'integer'},
|
|
6017
|
+
{'in': 'query', 'name': 'min_baths', 'type': 'number'}],
|
|
6018
|
+
'security': ['ApiKeyAuth']},
|
|
6019
|
+
'redfin-similar': {'bodyParam': None,
|
|
6020
|
+
'bodyRequired': False,
|
|
6021
|
+
'consumes': ['application/json'],
|
|
6022
|
+
'formParams': [],
|
|
6023
|
+
'id': 'redfin-similar',
|
|
6024
|
+
'method': 'GET',
|
|
6025
|
+
'path': '/redfin/similar',
|
|
6026
|
+
'pathParams': [],
|
|
6027
|
+
'produces': ['application/json'],
|
|
6028
|
+
'queryParams': [{'in': 'query', 'name': 'property_id', 'required': True, 'type': 'string'}],
|
|
6029
|
+
'security': ['ApiKeyAuth']},
|
|
5941
6030
|
'referrals-click': {'bodyParam': 'request',
|
|
5942
6031
|
'bodyRequired': True,
|
|
5943
6032
|
'consumes': ['application/json'],
|
|
@@ -7763,6 +7852,17 @@ OPERATIONS = {'airbnb-room': {'bodyParam': None,
|
|
|
7763
7852
|
'produces': ['application/json'],
|
|
7764
7853
|
'queryParams': [],
|
|
7765
7854
|
'security': ['JWTAuth']},
|
|
7855
|
+
'web-scrape': {'bodyParam': 'scrapeOption',
|
|
7856
|
+
'bodyRequired': True,
|
|
7857
|
+
'consumes': ['application/json'],
|
|
7858
|
+
'formParams': [],
|
|
7859
|
+
'id': 'web-scrape',
|
|
7860
|
+
'method': 'POST',
|
|
7861
|
+
'path': '/web/scrape',
|
|
7862
|
+
'pathParams': [],
|
|
7863
|
+
'produces': ['application/json'],
|
|
7864
|
+
'queryParams': [],
|
|
7865
|
+
'security': ['ApiKeyAuth']},
|
|
7766
7866
|
'yahoo-finance-calendar': {'bodyParam': None,
|
|
7767
7867
|
'bodyRequired': False,
|
|
7768
7868
|
'consumes': ['application/json'],
|
|
@@ -8762,6 +8862,11 @@ GROUPS = {'airbnb': {'room': 'airbnb-room',
|
|
|
8762
8862
|
'trends': 'reddit-trends',
|
|
8763
8863
|
'user_comments': 'reddit-user-comments',
|
|
8764
8864
|
'user_posts': 'reddit-user-posts'},
|
|
8865
|
+
'redfin': {'estimate': 'redfin-estimate',
|
|
8866
|
+
'property': 'redfin-property',
|
|
8867
|
+
'region_trends': 'redfin-region-trends',
|
|
8868
|
+
'search': 'redfin-search',
|
|
8869
|
+
'similar': 'redfin-similar'},
|
|
8765
8870
|
'referrals': {'click': 'referrals-click', 'me': 'referrals-me', 'me_events': 'referrals-me-events'},
|
|
8766
8871
|
'rotten_tomatoes': {'rottentomatoes_browse_movies': 'rottentomatoes-browse-movies',
|
|
8767
8872
|
'rottentomatoes_browse_tv': 'rottentomatoes-browse-tv',
|
|
@@ -8883,6 +8988,7 @@ GROUPS = {'airbnb': {'room': 'airbnb-room',
|
|
|
8883
8988
|
'me_api_keys': 'user-me-api-keys',
|
|
8884
8989
|
'me_api_keys_reveal': 'user-me-api-keys-reveal',
|
|
8885
8990
|
'me_api_keys_rotate': 'user-me-api-keys-rotate'},
|
|
8991
|
+
'web': {'antibot_check': 'antibot-check', 'contact': 'contact', 'scrape': 'web-scrape'},
|
|
8886
8992
|
'yahoo_finance': {'calendar': 'yahoo-finance-calendar',
|
|
8887
8993
|
'calendars': 'yahoo-finance-calendars',
|
|
8888
8994
|
'download': 'yahoo-finance-download',
|
|
@@ -8937,7 +9043,7 @@ GROUPS = {'airbnb': {'room': 'airbnb-room',
|
|
|
8937
9043
|
'video': 'youtube-video'},
|
|
8938
9044
|
'zillow': {'autocomplete': 'zillow-autocomplete', 'property': 'zillow-property', 'search': 'zillow-search'}}
|
|
8939
9045
|
|
|
8940
|
-
OPERATION_COUNT =
|
|
9046
|
+
OPERATION_COUNT = 499
|
|
8941
9047
|
|
|
8942
9048
|
class OperationId:
|
|
8943
9049
|
AIRBNB_ROOM = 'airbnb-room'
|
|
@@ -9252,6 +9358,11 @@ class OperationId:
|
|
|
9252
9358
|
REDDIT_TRENDS = 'reddit-trends'
|
|
9253
9359
|
REDDIT_USER_COMMENTS = 'reddit-user-comments'
|
|
9254
9360
|
REDDIT_USER_POSTS = 'reddit-user-posts'
|
|
9361
|
+
REDFIN_ESTIMATE = 'redfin-estimate'
|
|
9362
|
+
REDFIN_PROPERTY = 'redfin-property'
|
|
9363
|
+
REDFIN_REGION_TRENDS = 'redfin-region-trends'
|
|
9364
|
+
REDFIN_SEARCH = 'redfin-search'
|
|
9365
|
+
REDFIN_SIMILAR = 'redfin-similar'
|
|
9255
9366
|
REFERRALS_CLICK = 'referrals-click'
|
|
9256
9367
|
REFERRALS_ME = 'referrals-me'
|
|
9257
9368
|
REFERRALS_ME_EVENTS = 'referrals-me-events'
|
|
@@ -9376,6 +9487,9 @@ class OperationId:
|
|
|
9376
9487
|
USER_ME_API_KEYS = 'user-me-api-keys'
|
|
9377
9488
|
USER_ME_API_KEYS_REVEAL = 'user-me-api-keys-reveal'
|
|
9378
9489
|
USER_ME_API_KEYS_ROTATE = 'user-me-api-keys-rotate'
|
|
9490
|
+
WEB_ANTIBOT_CHECK = 'antibot-check'
|
|
9491
|
+
WEB_CONTACT = 'contact'
|
|
9492
|
+
WEB_SCRAPE = 'web-scrape'
|
|
9379
9493
|
YAHOO_FINANCE_CALENDAR = 'yahoo-finance-calendar'
|
|
9380
9494
|
YAHOO_FINANCE_CALENDARS = 'yahoo-finance-calendars'
|
|
9381
9495
|
YAHOO_FINANCE_DOWNLOAD = 'yahoo-finance-download'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crawlora
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.8.0.dev2
|
|
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
|
|
@@ -27,7 +27,7 @@ Dynamic: license-file
|
|
|
27
27
|
# Crawlora Python SDK
|
|
28
28
|
|
|
29
29
|
Python client for the public Crawlora API. Use it to call Crawlora scraping,
|
|
30
|
-
search, social, marketplace, media, maps, finance, brand, and usage endpoints
|
|
30
|
+
search, social, marketplace, media, maps, finance, prediction-market, brand, and usage endpoints
|
|
31
31
|
with generated type stubs for editor and type-checker support.
|
|
32
32
|
|
|
33
33
|
- Runtime: Python 3.10+
|
|
@@ -38,7 +38,7 @@ with generated type stubs for editor and type-checker support.
|
|
|
38
38
|
## Install
|
|
39
39
|
|
|
40
40
|
Published on [PyPI](https://pypi.org/project/crawlora/). The current release is a
|
|
41
|
-
prerelease (`1.
|
|
41
|
+
prerelease (`1.7.0.dev1`), so install it with `--pre`:
|
|
42
42
|
|
|
43
43
|
```sh
|
|
44
44
|
pip install --pre crawlora
|
|
@@ -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: `499`
|
|
6
6
|
|
|
7
7
|
| Group | SDK method | Operation ID | HTTP | Params | Auth | Response | Notes |
|
|
8
8
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
@@ -89,6 +89,9 @@ Total operations: `491`
|
|
|
89
89
|
| coin_gecko | `coin_gecko.token_unlocks` | `coingecko-token-unlocks` | `GET /coingecko/token-unlocks` | `limit` (query int) | `ApiKeyAuth` | `CoinGeckoTokenUnlocksResponse` | |
|
|
90
90
|
| coin_gecko | `coin_gecko.treasuries` | `coingecko-treasuries` | `GET /coingecko/treasuries` | `asset` (query Literal['all', 'bitcoin', 'ethereum', 'solana', 'bnb', 'xrp', 'tron'])<br>`holder_type` (query Literal['all', 'companies', 'governments'])<br>`limit` (query int)<br>`vs_currency` (query Literal['btc', 'eth', 'ltc', 'bch', 'bnb', 'eos', 'xrp', 'xlm', 'link', 'dot', 'yfi', 'sol', 'usd', 'aed', 'ars', 'aud', 'bdt', 'bhd', 'bmd', 'brl', 'cad', 'chf', 'clp', 'cny', 'czk', 'dkk', 'eur', 'gbp', 'gel', 'hkd', 'huf', 'idr', 'ils', 'inr', 'jpy', 'krw', 'kwd', 'lkr', 'mmk', 'mxn', 'myr', 'ngn', 'nok', 'nzd', 'php', 'pkr', 'pln', 'rub', 'sar', 'sek', 'sgd', 'thb', 'try', 'twd', 'uah', 'vef', 'vnd', 'zar', 'xdr', 'xag', 'xau', 'bits', 'sats']) | `ApiKeyAuth` | `CoinGeckoTreasuriesResponse` | |
|
|
91
91
|
| coin_gecko | `coin_gecko.trending` | `coingecko-trending` | `GET /coingecko/trending` | `limit` (query int)<br>`vs_currency` (query Literal['btc', 'eth', 'ltc', 'bch', 'bnb', 'eos', 'xrp', 'xlm', 'link', 'dot', 'yfi', 'sol', 'usd', 'aed', 'ars', 'aud', 'bdt', 'bhd', 'bmd', 'brl', 'cad', 'chf', 'clp', 'cny', 'czk', 'dkk', 'eur', 'gbp', 'gel', 'hkd', 'huf', 'idr', 'ils', 'inr', 'jpy', 'krw', 'kwd', 'lkr', 'mmk', 'mxn', 'myr', 'ngn', 'nok', 'nzd', 'php', 'pkr', 'pln', 'rub', 'sar', 'sek', 'sgd', 'thb', 'try', 'twd', 'uah', 'vef', 'vnd', 'zar', 'xdr', 'xag', 'xau', 'bits', 'sats']) | `ApiKeyAuth` | `CoinGeckoTrendingResponse` | |
|
|
92
|
+
| web | `web.contact` | `contact` | `POST /contact` | `option` (body str required) | `ApiKeyAuth` | `WebContactResponse` | |
|
|
93
|
+
| web | `web.antibot_check` | `antibot-check` | `POST /diagnostics/antibot-check` | `request` (body str required) | `ApiKeyAuth` | `WebAntibotCheckResponse` | |
|
|
94
|
+
| web | `web.scrape` | `web-scrape` | `POST /web/scrape` | `scrapeOption` (body str required) | `ApiKeyAuth` | `WebScrapeResponse` | |
|
|
92
95
|
| datasets | `datasets.list` | `datasets-list` | `GET /datasets` | none | `ApiKeyAuth` | `DatasetsListResponse` | |
|
|
93
96
|
| datasets | `datasets.google_map_businesses_facets` | `datasets-google-map-businesses-facets` | `GET /datasets/google-map-businesses/facets` | `facet` (query str required)<br>`q` (query str)<br>`category` (query str)<br>`country` (query str)<br>`state` (query str)<br>`county` (query str)<br>`city` (query str)<br>`town` (query str)<br>`min_rating` (query float)<br>`min_review_count` (query int)<br>`has_website` (query bool)<br>`has_phone` (query bool)<br>`lat` (query float)<br>`lon` (query float)<br>`radius_m` (query int)<br>`sort` (query str) | `ApiKeyAuth` | `DatasetsGoogleMapBusinessesFacetsResponse` | |
|
|
94
97
|
| datasets | `datasets.google_map_businesses_item` | `datasets-google-map-businesses-item` | `GET /datasets/google-map-businesses/items/{place_id}` | `place_id` (path str required) | `ApiKeyAuth` | `DatasetsGoogleMapBusinessesItemResponse` | |
|
|
@@ -318,6 +321,11 @@ Total operations: `491`
|
|
|
318
321
|
| reddit | `reddit.trends` | `reddit-trends` | `GET /reddit/trends` | `sort` (query Literal['hot', 'new', 'rising', 'top'])<br>`time` (query Literal['hour', 'day', 'week', 'month', 'year', 'all'])<br>`limit` (query int)<br>`after` (query str) | `ApiKeyAuth` | `RedditTrendsResponse` | |
|
|
319
322
|
| reddit | `reddit.user_comments` | `reddit-user-comments` | `GET /reddit/user/{username}/comments` | `username` (path str required)<br>`limit` (query int)<br>`after` (query str) | `ApiKeyAuth` | `RedditUserCommentsResponse` | |
|
|
320
323
|
| reddit | `reddit.user_posts` | `reddit-user-posts` | `GET /reddit/user/{username}/posts` | `username` (path str required)<br>`limit` (query int)<br>`after` (query str) | `ApiKeyAuth` | `RedditUserPostsResponse` | |
|
|
324
|
+
| redfin | `redfin.estimate` | `redfin-estimate` | `GET /redfin/estimate` | `property_id` (query str required) | `ApiKeyAuth` | `RedfinEstimateResponse` | |
|
|
325
|
+
| redfin | `redfin.property` | `redfin-property` | `GET /redfin/property` | `url` (query str)<br>`property_id` (query str)<br>`listing_id` (query str) | `ApiKeyAuth` | `RedfinPropertyResponse` | |
|
|
326
|
+
| redfin | `redfin.region_trends` | `redfin-region-trends` | `GET /redfin/region-trends` | `region_id` (query int required)<br>`region_type` (query int) | `ApiKeyAuth` | `RedfinRegionTrendsResponse` | |
|
|
327
|
+
| redfin | `redfin.search` | `redfin-search` | `GET /redfin/search` | `location` (query str)<br>`page` (query int)<br>`region_id` (query int)<br>`region_type` (query int)<br>`status` (query str)<br>`min_price` (query int)<br>`max_price` (query int)<br>`min_beds` (query int)<br>`min_baths` (query float) | `ApiKeyAuth` | `RedfinSearchResponse` | |
|
|
328
|
+
| redfin | `redfin.similar` | `redfin-similar` | `GET /redfin/similar` | `property_id` (query str required) | `ApiKeyAuth` | `RedfinSimilarResponse` | |
|
|
321
329
|
| referrals | `referrals.click` | `referrals-click` | `POST /referrals/click` | `request` (body str required) | none | `ReferralsClickResponse` | |
|
|
322
330
|
| referrals | `referrals.me` | `referrals-me` | `GET /referrals/me` | none | `JWTAuth` | `ReferralsMeResponse` | |
|
|
323
331
|
| referrals | `referrals.me_events` | `referrals-me-events` | `GET /referrals/me/events` | `limit` (query int) | `JWTAuth` | `ReferralsMeEventsResponse` | |
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "crawlora"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.8.0.dev2"
|
|
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, 499)
|
|
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: `499`",
|
|
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
|