crawlberg 1.7.2 → 1.10.2
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.
- checksums.yaml +4 -4
- data/ext/crawlberg_rb/native/Cargo.lock +433 -160
- data/ext/crawlberg_rb/native/Cargo.toml +3 -3
- data/ext/crawlberg_rb/src/lib.rs +574 -11
- data/lib/crawlberg/version.rb +2 -2
- data/sig/types.rbs +29 -8
- metadata +2 -2
data/lib/crawlberg/version.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# This file is auto-generated by alef — DO NOT EDIT.
|
|
2
|
-
# alef:hash:
|
|
2
|
+
# alef:hash:700d0a4f554a82a4d199e9c3c841556663485b9338869650cdd2738506c08763
|
|
3
3
|
# To regenerate: alef generate
|
|
4
4
|
# To verify freshness: alef verify
|
|
5
5
|
# frozen_string_literal: true
|
|
6
6
|
|
|
7
7
|
module Crawlberg
|
|
8
8
|
## The version string for this package.
|
|
9
|
-
VERSION = "1.
|
|
9
|
+
VERSION = "1.10.2"
|
|
10
10
|
end
|
data/sig/types.rbs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# This file is auto-generated by alef — DO NOT EDIT.
|
|
2
|
-
# alef:hash:
|
|
2
|
+
# alef:hash:3beedc8e4020e7af03194ac67ead1f260c8777df76ad65e2d9682e60fc03dd3b
|
|
3
3
|
# To regenerate: alef generate
|
|
4
4
|
# To verify freshness: alef verify
|
|
5
5
|
|
|
@@ -74,6 +74,8 @@ def initialize: (?results: Array[BatchScrapeResult], ?total_count: Integer, ?com
|
|
|
74
74
|
attr_reader backend: enum_BrowserBackend
|
|
75
75
|
attr_reader endpoint: String?
|
|
76
76
|
attr_reader timeout: Integer
|
|
77
|
+
attr_reader overall_timeout: Integer
|
|
78
|
+
attr_reader shutdown_timeout: Integer
|
|
77
79
|
attr_reader wait: enum_BrowserWait
|
|
78
80
|
attr_reader wait_selector: String?
|
|
79
81
|
attr_reader extra_wait: Integer?
|
|
@@ -83,8 +85,10 @@ def initialize: (?results: Array[BatchScrapeResult], ?total_count: Integer, ?com
|
|
|
83
85
|
attr_reader robots_user_agent: String?
|
|
84
86
|
attr_reader capture_network_events: bool
|
|
85
87
|
attr_reader session_affinity: bool
|
|
88
|
+
attr_reader chrome_path: String?
|
|
89
|
+
attr_reader chrome_args: Array[String]
|
|
86
90
|
|
|
87
|
-
def initialize: (?mode: enum_BrowserMode, ?backend: enum_BrowserBackend, ?endpoint: String, ?timeout: Integer, ?wait: enum_BrowserWait, ?wait_selector: String, ?extra_wait: Integer, ?proxy: ProxyConfig, ?block_url_patterns: Array[String], ?eval_script: String, ?robots_user_agent: String, ?capture_network_events: bool, ?session_affinity: bool) -> void
|
|
91
|
+
def initialize: (?mode: enum_BrowserMode, ?backend: enum_BrowserBackend, ?endpoint: String, ?timeout: Integer, ?overall_timeout: Integer, ?shutdown_timeout: Integer, ?wait: enum_BrowserWait, ?wait_selector: String, ?extra_wait: Integer, ?proxy: ProxyConfig, ?block_url_patterns: Array[String], ?eval_script: String, ?robots_user_agent: String, ?capture_network_events: bool, ?session_affinity: bool, ?chrome_path: String, ?chrome_args: Array[String]) -> void
|
|
88
92
|
end
|
|
89
93
|
|
|
90
94
|
class BrowserExtras
|
|
@@ -123,8 +127,9 @@ def initialize: (?content: String, ?references: Array[CitationReference]) -> voi
|
|
|
123
127
|
attr_reader wrap: bool
|
|
124
128
|
attr_reader wrap_width: Integer
|
|
125
129
|
attr_reader include_document_structure: bool
|
|
130
|
+
attr_reader extract_metadata: bool
|
|
126
131
|
|
|
127
|
-
def initialize: (?output_format: String, ?preprocessing_preset: String, ?remove_navigation: bool, ?remove_forms: bool, ?strip_tags: Array[String], ?preserve_tags: Array[String], ?exclude_selectors: Array[String], ?skip_images: bool, ?max_depth: Integer, ?wrap: bool, ?wrap_width: Integer, ?include_document_structure: bool) -> void
|
|
132
|
+
def initialize: (?output_format: String, ?preprocessing_preset: String, ?remove_navigation: bool, ?remove_forms: bool, ?strip_tags: Array[String], ?preserve_tags: Array[String], ?exclude_selectors: Array[String], ?skip_images: bool, ?max_depth: Integer, ?wrap: bool, ?wrap_width: Integer, ?include_document_structure: bool, ?extract_metadata: bool) -> void
|
|
128
133
|
end
|
|
129
134
|
|
|
130
135
|
class CookieInfo
|
|
@@ -152,12 +157,20 @@ def initialize: (?output_format: String, ?preprocessing_preset: String, ?remove_
|
|
|
152
157
|
attr_reader allow_subdomains: bool
|
|
153
158
|
attr_reader include_paths: Array[String]
|
|
154
159
|
attr_reader exclude_paths: Array[String]
|
|
160
|
+
attr_reader path_patterns_match_query: bool
|
|
161
|
+
attr_reader path_patterns_match_url: bool
|
|
162
|
+
attr_reader dedup_include_query: bool
|
|
163
|
+
attr_reader strip_tracking_params: bool
|
|
164
|
+
attr_reader tracking_params: Array[String]
|
|
155
165
|
attr_reader custom_headers: Hash[String, String]
|
|
156
166
|
attr_reader request_timeout: Integer
|
|
157
167
|
attr_reader rate_limit_ms: Integer?
|
|
158
168
|
attr_reader max_redirects: Integer
|
|
159
169
|
attr_reader retry_count: Integer
|
|
160
170
|
attr_reader retry_codes: Array[Integer]
|
|
171
|
+
attr_reader retry_initial_delay_ms: Integer
|
|
172
|
+
attr_reader retry_max_delay_ms: Integer
|
|
173
|
+
attr_reader rate_limit_jitter_ratio: Float
|
|
161
174
|
attr_reader cookies_enabled: bool
|
|
162
175
|
attr_reader auth: AuthConfig?
|
|
163
176
|
attr_reader max_body_size: Integer?
|
|
@@ -185,7 +198,7 @@ def initialize: (?output_format: String, ?preprocessing_preset: String, ?remove_
|
|
|
185
198
|
attr_reader ssrf: SsrfPolicy
|
|
186
199
|
attr_reader ssrf_deny_private_explicit: bool?
|
|
187
200
|
|
|
188
|
-
def initialize: (?max_depth: Integer, ?max_pages: Integer, ?max_links_per_page: Integer, ?max_concurrent: Integer, ?crawl_strategy: enum_CrawlStrategyKind, ?content_filter: enum_ContentFilterKind, ?bm25_query: String, ?bm25_threshold: Float, ?respect_robots_txt: bool, ?soft_http_errors: bool, ?user_agent: String, ?stay_on_domain: bool, ?allow_subdomains: bool, ?include_paths: Array[String], ?exclude_paths: Array[String], ?custom_headers: Hash[String, String], ?request_timeout: Integer, ?rate_limit_ms: Integer, ?max_redirects: Integer, ?retry_count: Integer, ?retry_codes: Array[Integer], ?cookies_enabled: bool, ?auth: AuthConfig, ?max_body_size: Integer, ?remove_tags: Array[String], ?content: ContentConfig, ?map_limit: Integer, ?map_search: String, ?download_assets: bool, ?asset_types: Array[enum_AssetCategory], ?max_asset_size: Integer, ?browser: BrowserConfig, ?proxy: ProxyConfig, ?user_agents: Array[String], ?capture_screenshot: bool, ?follow_document_urls: bool, ?document_url_depth: Integer, ?download_documents: bool, ?document_max_size: Integer, ?document_mime_types: Array[String], ?document_output_dir: String, ?document_content_encoding: enum_DocumentContentEncoding, ?warc_output: String, ?browser_profile: String, ?save_browser_profile: bool, ?ssrf: SsrfPolicy, ?ssrf_deny_private_explicit: bool) -> void
|
|
201
|
+
def initialize: (?max_depth: Integer, ?max_pages: Integer, ?max_links_per_page: Integer, ?max_concurrent: Integer, ?crawl_strategy: enum_CrawlStrategyKind, ?content_filter: enum_ContentFilterKind, ?bm25_query: String, ?bm25_threshold: Float, ?respect_robots_txt: bool, ?soft_http_errors: bool, ?user_agent: String, ?stay_on_domain: bool, ?allow_subdomains: bool, ?include_paths: Array[String], ?exclude_paths: Array[String], ?path_patterns_match_query: bool, ?path_patterns_match_url: bool, ?dedup_include_query: bool, ?strip_tracking_params: bool, ?tracking_params: Array[String], ?custom_headers: Hash[String, String], ?request_timeout: Integer, ?rate_limit_ms: Integer, ?max_redirects: Integer, ?retry_count: Integer, ?retry_codes: Array[Integer], ?retry_initial_delay_ms: Integer, ?retry_max_delay_ms: Integer, ?rate_limit_jitter_ratio: Float, ?cookies_enabled: bool, ?auth: AuthConfig, ?max_body_size: Integer, ?remove_tags: Array[String], ?content: ContentConfig, ?map_limit: Integer, ?map_search: String, ?download_assets: bool, ?asset_types: Array[enum_AssetCategory], ?max_asset_size: Integer, ?browser: BrowserConfig, ?proxy: ProxyConfig, ?user_agents: Array[String], ?capture_screenshot: bool, ?follow_document_urls: bool, ?document_url_depth: Integer, ?download_documents: bool, ?document_max_size: Integer, ?document_mime_types: Array[String], ?document_output_dir: String, ?document_content_encoding: enum_DocumentContentEncoding, ?warc_output: String, ?browser_profile: String, ?save_browser_profile: bool, ?ssrf: SsrfPolicy, ?ssrf_deny_private_explicit: bool) -> void
|
|
189
202
|
def validate: () -> void
|
|
190
203
|
end
|
|
191
204
|
|
|
@@ -216,8 +229,13 @@ def batch_crawl_stream: (BatchCrawlStreamRequest req) -> Enumerator[CrawlEvent]
|
|
|
216
229
|
attr_reader extraction_meta: ExtractionMeta?
|
|
217
230
|
attr_reader downloaded_document: DownloadedDocument?
|
|
218
231
|
attr_reader browser_used: bool
|
|
232
|
+
attr_reader final_url: String
|
|
233
|
+
attr_reader redirect_count: Integer
|
|
234
|
+
attr_reader noindex_detected: bool
|
|
235
|
+
attr_reader nofollow_detected: bool
|
|
236
|
+
attr_reader ssrf_refused_urls: Array[String]
|
|
219
237
|
|
|
220
|
-
def initialize: (?url: String, ?normalized_url: String, ?status_code: Integer, ?content_type: String, ?html: String, ?body_size: Integer, ?metadata: PageMetadata, ?links: Array[LinkInfo], ?images: Array[ImageInfo], ?feeds: Array[FeedInfo], ?json_ld: Array[JsonLdEntry], ?depth: Integer, ?stayed_on_domain: bool, ?was_skipped: bool, ?is_pdf: bool, ?detected_charset: String, ?markdown: MarkdownResult, ?extracted_data: String, ?extraction_meta: ExtractionMeta, ?downloaded_document: DownloadedDocument, ?browser_used: bool) -> void
|
|
238
|
+
def initialize: (?url: String, ?normalized_url: String, ?status_code: Integer, ?content_type: String, ?html: String, ?body_size: Integer, ?metadata: PageMetadata, ?links: Array[LinkInfo], ?images: Array[ImageInfo], ?feeds: Array[FeedInfo], ?json_ld: Array[JsonLdEntry], ?depth: Integer, ?stayed_on_domain: bool, ?was_skipped: bool, ?is_pdf: bool, ?detected_charset: String, ?markdown: MarkdownResult, ?extracted_data: String, ?extraction_meta: ExtractionMeta, ?downloaded_document: DownloadedDocument, ?browser_used: bool, ?final_url: String, ?redirect_count: Integer, ?noindex_detected: bool, ?nofollow_detected: bool, ?ssrf_refused_urls: Array[String]) -> void
|
|
221
239
|
end
|
|
222
240
|
|
|
223
241
|
class CrawlResult
|
|
@@ -321,8 +339,9 @@ def initialize: (?url: String, ?mime_type: String, ?size: Integer, ?filename: St
|
|
|
321
339
|
attr_reader final_html: String
|
|
322
340
|
attr_reader final_url: String
|
|
323
341
|
attr_reader screenshot_base64: String?
|
|
342
|
+
attr_reader ssrf_refused_urls: Array[String]
|
|
324
343
|
|
|
325
|
-
def initialize: (?action_results: Array[ActionResult], ?final_html: String, ?final_url: String, ?screenshot_base64: String) -> void
|
|
344
|
+
def initialize: (?action_results: Array[ActionResult], ?final_html: String, ?final_url: String, ?screenshot_base64: String, ?ssrf_refused_urls: Array[String]) -> void
|
|
326
345
|
end
|
|
327
346
|
|
|
328
347
|
class JsonLdEntry
|
|
@@ -458,8 +477,9 @@ def initialize: (?title: String, ?description: String, ?canonical_url: String, ?
|
|
|
458
477
|
attr_reader screenshot_base64: String?
|
|
459
478
|
attr_reader downloaded_document: DownloadedDocument?
|
|
460
479
|
attr_reader browser: BrowserExtras?
|
|
480
|
+
attr_reader ssrf_refused_urls: Array[String]
|
|
461
481
|
|
|
462
|
-
def initialize: (?status_code: Integer, ?final_url: String, ?content_type: String, ?html: String, ?body_size: Integer, ?metadata: PageMetadata, ?links: Array[LinkInfo], ?images: Array[ImageInfo], ?feeds: Array[FeedInfo], ?json_ld: Array[JsonLdEntry], ?is_allowed: bool, ?crawl_delay: Integer, ?noindex_detected: bool, ?nofollow_detected: bool, ?x_robots_tag: String, ?is_pdf: bool, ?was_skipped: bool, ?detected_charset: String, ?auth_header_sent: bool, ?response_meta: ResponseMeta, ?assets: Array[DownloadedAsset], ?js_render_hint: bool, ?browser_used: bool, ?markdown: MarkdownResult, ?extracted_data: String, ?extraction_meta: ExtractionMeta, ?screenshot_base64: String, ?downloaded_document: DownloadedDocument, ?browser: BrowserExtras) -> void
|
|
482
|
+
def initialize: (?status_code: Integer, ?final_url: String, ?content_type: String, ?html: String, ?body_size: Integer, ?metadata: PageMetadata, ?links: Array[LinkInfo], ?images: Array[ImageInfo], ?feeds: Array[FeedInfo], ?json_ld: Array[JsonLdEntry], ?is_allowed: bool, ?crawl_delay: Integer, ?noindex_detected: bool, ?nofollow_detected: bool, ?x_robots_tag: String, ?is_pdf: bool, ?was_skipped: bool, ?detected_charset: String, ?auth_header_sent: bool, ?response_meta: ResponseMeta, ?assets: Array[DownloadedAsset], ?js_render_hint: bool, ?browser_used: bool, ?markdown: MarkdownResult, ?extracted_data: String, ?extraction_meta: ExtractionMeta, ?screenshot_base64: String, ?downloaded_document: DownloadedDocument, ?browser: BrowserExtras, ?ssrf_refused_urls: Array[String]) -> void
|
|
463
483
|
end
|
|
464
484
|
|
|
465
485
|
class SitemapUrl
|
|
@@ -474,10 +494,11 @@ def initialize: (?status_code: Integer, ?final_url: String, ?content_type: Strin
|
|
|
474
494
|
class SsrfPolicy
|
|
475
495
|
attr_reader deny_private: bool
|
|
476
496
|
attr_reader allowlist: Array[HostMatcher]
|
|
497
|
+
attr_reader denylist: Array[HostMatcher]
|
|
477
498
|
attr_reader max_redirects: Integer
|
|
478
499
|
attr_reader scheme_allowlist: Array[String]
|
|
479
500
|
|
|
480
|
-
def initialize: (?deny_private: bool, ?allowlist: Array[HostMatcher], ?max_redirects: Integer, ?scheme_allowlist: Array[String]) -> void
|
|
501
|
+
def initialize: (?deny_private: bool, ?allowlist: Array[HostMatcher], ?denylist: Array[HostMatcher], ?max_redirects: Integer, ?scheme_allowlist: Array[String]) -> void
|
|
481
502
|
end
|
|
482
503
|
|
|
483
504
|
type enum_AssetCategory = :document | :image | :audio | :video | :font | :stylesheet | :script | :archive | :data | :other
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: crawlberg
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.10.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Xberg Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-10-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rb_sys
|