crawlberg 1.2.1 → 1.3.3
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/README.md +5 -0
- data/ext/crawlberg_rb/native/Cargo.lock +111 -142
- data/ext/crawlberg_rb/native/Cargo.toml +19 -2
- data/ext/crawlberg_rb/native/extconf.rb +5 -0
- data/ext/crawlberg_rb/src/lib.rs +223 -30
- data/lib/crawlberg/native.rb +48 -97
- data/lib/crawlberg/version.rb +3 -3
- data/lib/crawlberg.rb +2 -2
- data/sig/types.rbs +456 -449
- metadata +2 -3
- data/lib/crawlberg_rb.so +0 -0
data/sig/types.rbs
CHANGED
|
@@ -1,547 +1,554 @@
|
|
|
1
1
|
# This file is auto-generated by alef — DO NOT EDIT.
|
|
2
|
-
# alef:hash:
|
|
2
|
+
# alef:hash:78599b35c3e08365abebb762ea75ffe2c15e049fd992db89a8a26acf137f8c4f
|
|
3
3
|
# To regenerate: alef generate
|
|
4
|
-
# To verify freshness: alef verify
|
|
4
|
+
# To verify freshness: alef verify
|
|
5
5
|
|
|
6
6
|
module Crawlberg
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
VERSION: String
|
|
9
9
|
|
|
10
|
-
type json_value = Hash[String, untyped] | Array[untyped] | String | Integer | Float | bool | nil
|
|
10
|
+
type json_value = Hash[String, untyped] | Array[untyped] | String | Integer | Float | bool | nil
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
class ExtractionMeta
|
|
13
|
+
attr_reader cost: Float?
|
|
14
|
+
attr_reader prompt_tokens: Integer?
|
|
15
|
+
attr_reader completion_tokens: Integer?
|
|
16
|
+
attr_reader model: String?
|
|
17
|
+
attr_reader chunks_processed: Integer
|
|
18
18
|
|
|
19
19
|
def initialize: (?cost: Float, ?prompt_tokens: Integer, ?completion_tokens: Integer, ?model: String, ?chunks_processed: Integer) -> void
|
|
20
|
-
|
|
20
|
+
end
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
class ProxyConfig
|
|
23
|
+
attr_reader url: String
|
|
24
|
+
attr_reader username: String?
|
|
25
|
+
attr_reader password: String?
|
|
26
26
|
|
|
27
27
|
def initialize: (?url: String, ?username: String, ?password: String) -> void
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
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
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class ContentConfig
|
|
31
|
+
attr_reader output_format: String
|
|
32
|
+
attr_reader preprocessing_preset: String
|
|
33
|
+
attr_reader remove_navigation: bool
|
|
34
|
+
attr_reader remove_forms: bool
|
|
35
|
+
attr_reader strip_tags: Array[String]
|
|
36
|
+
attr_reader preserve_tags: Array[String]
|
|
37
|
+
attr_reader exclude_selectors: Array[String]
|
|
38
|
+
attr_reader skip_images: bool
|
|
39
|
+
attr_reader max_depth: Integer?
|
|
40
|
+
attr_reader wrap: bool
|
|
41
|
+
attr_reader wrap_width: Integer
|
|
42
|
+
attr_reader include_document_structure: bool
|
|
43
|
+
|
|
44
|
+
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
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
class BrowserConfig
|
|
48
|
+
attr_reader mode: BrowserMode
|
|
49
|
+
attr_reader backend: BrowserBackend
|
|
50
|
+
attr_reader endpoint: String?
|
|
51
|
+
attr_reader timeout: Integer
|
|
52
|
+
attr_reader wait: BrowserWait
|
|
53
|
+
attr_reader wait_selector: String?
|
|
54
|
+
attr_reader extra_wait: Integer?
|
|
55
|
+
attr_reader proxy: ProxyConfig?
|
|
56
|
+
attr_reader block_url_patterns: Array[String]
|
|
57
|
+
attr_reader eval_script: String?
|
|
58
|
+
attr_reader robots_user_agent: String?
|
|
59
|
+
attr_reader capture_network_events: bool
|
|
60
|
+
attr_reader session_affinity: bool
|
|
61
|
+
|
|
62
|
+
def initialize: (?mode: BrowserMode, ?backend: BrowserBackend, ?endpoint: String, ?timeout: Integer, ?wait: 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
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
class CrawlConfig
|
|
66
|
+
attr_reader max_depth: Integer?
|
|
67
|
+
attr_reader max_pages: Integer?
|
|
68
|
+
attr_reader max_links_per_page: Integer?
|
|
69
|
+
attr_reader max_concurrent: Integer?
|
|
70
|
+
attr_reader crawl_strategy: CrawlStrategyKind
|
|
71
|
+
attr_reader content_filter: ContentFilterKind?
|
|
72
|
+
attr_reader bm25_query: String?
|
|
73
|
+
attr_reader bm25_threshold: Float?
|
|
74
|
+
attr_reader respect_robots_txt: bool
|
|
75
|
+
attr_reader soft_http_errors: bool
|
|
76
|
+
attr_reader user_agent: String?
|
|
77
|
+
attr_reader stay_on_domain: bool
|
|
78
|
+
attr_reader allow_subdomains: bool
|
|
79
|
+
attr_reader include_paths: Array[String]
|
|
80
|
+
attr_reader exclude_paths: Array[String]
|
|
81
|
+
attr_reader custom_headers: Hash[String, String]
|
|
82
|
+
attr_reader request_timeout: Integer
|
|
83
|
+
attr_reader rate_limit_ms: Integer?
|
|
84
|
+
attr_reader max_redirects: Integer
|
|
85
|
+
attr_reader retry_count: Integer
|
|
86
|
+
attr_reader retry_codes: Array[Integer]
|
|
87
|
+
attr_reader cookies_enabled: bool
|
|
88
|
+
attr_reader auth: AuthConfig?
|
|
89
|
+
attr_reader max_body_size: Integer?
|
|
90
|
+
attr_reader remove_tags: Array[String]
|
|
91
|
+
attr_reader content: ContentConfig
|
|
92
|
+
attr_reader map_limit: Integer?
|
|
93
|
+
attr_reader map_search: String?
|
|
94
|
+
attr_reader download_assets: bool
|
|
95
|
+
attr_reader asset_types: Array[AssetCategory]
|
|
96
|
+
attr_reader max_asset_size: Integer?
|
|
97
|
+
attr_reader browser: BrowserConfig
|
|
98
|
+
attr_reader proxy: ProxyConfig?
|
|
99
|
+
attr_reader user_agents: Array[String]
|
|
100
|
+
attr_reader capture_screenshot: bool
|
|
101
|
+
attr_reader follow_document_urls: bool
|
|
102
|
+
attr_reader document_url_depth: Integer?
|
|
103
|
+
attr_reader download_documents: bool
|
|
104
|
+
attr_reader document_max_size: Integer?
|
|
105
|
+
attr_reader document_mime_types: Array[String]
|
|
106
|
+
attr_reader document_output_dir: String?
|
|
107
|
+
attr_reader document_content_encoding: DocumentContentEncoding?
|
|
108
|
+
attr_reader warc_output: String?
|
|
109
|
+
attr_reader browser_profile: String?
|
|
110
|
+
attr_reader save_browser_profile: bool
|
|
111
|
+
attr_reader ssrf: SsrfPolicy
|
|
112
|
+
attr_reader ssrf_deny_private_explicit: bool?
|
|
113
|
+
|
|
114
|
+
def initialize: (?max_depth: Integer, ?max_pages: Integer, ?max_links_per_page: Integer, ?max_concurrent: Integer, ?crawl_strategy: CrawlStrategyKind, ?content_filter: 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[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: DocumentContentEncoding, ?warc_output: String, ?browser_profile: String, ?save_browser_profile: bool, ?ssrf: SsrfPolicy, ?ssrf_deny_private_explicit: bool) -> void
|
|
113
115
|
def validate: () -> void
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
def initialize: (?pages: Array[CrawlPageResult], ?final_url: String, ?redirect_count: Integer, ?was_skipped: bool, ?error: String, ?cookies: Array[CookieInfo], ?stayed_on_domain: bool, ?browser_used: bool) -> void
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
class BrowserExtras
|
|
119
|
+
attr_reader eval_result: String?
|
|
120
|
+
attr_reader network_events: Array[ResponseMeta]
|
|
121
|
+
attr_reader cookies: Array[CookieInfo]
|
|
122
|
+
|
|
123
|
+
def initialize: (?eval_result: String, ?network_events: Array[ResponseMeta], ?cookies: Array[CookieInfo]) -> void
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
class DownloadedDocument
|
|
127
|
+
attr_reader url: String
|
|
128
|
+
attr_reader mime_type: String
|
|
129
|
+
attr_reader size: Integer
|
|
130
|
+
attr_reader filename: String?
|
|
131
|
+
attr_reader content_hash: String
|
|
132
|
+
attr_reader headers: Hash[String, String]
|
|
133
|
+
attr_reader truncated: bool
|
|
134
|
+
attr_reader content_path: String?
|
|
135
|
+
attr_reader content_base64: String?
|
|
136
|
+
|
|
137
|
+
def initialize: (?url: String, ?mime_type: String, ?size: Integer, ?filename: String, ?content_hash: String, ?headers: Hash[String, String], ?truncated: bool, ?content_path: String, ?content_base64: String) -> void
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
class InteractionResult
|
|
141
|
+
attr_reader action_results: Array[ActionResult]
|
|
142
|
+
attr_reader final_html: String
|
|
143
|
+
attr_reader final_url: String
|
|
144
|
+
attr_reader screenshot_base64: String?
|
|
145
|
+
|
|
146
|
+
def initialize: (?action_results: Array[ActionResult], ?final_html: String, ?final_url: String, ?screenshot_base64: String) -> void
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
class ActionResult
|
|
150
|
+
attr_reader action_index: Integer
|
|
151
|
+
attr_reader action_type: String
|
|
152
|
+
attr_reader success: bool
|
|
153
|
+
attr_reader data: String?
|
|
154
|
+
attr_reader error: String?
|
|
155
|
+
|
|
156
|
+
def initialize: (?action_index: Integer, ?action_type: String, ?success: bool, ?data: String, ?error: String) -> void
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
class ScrapeResult
|
|
160
|
+
attr_reader status_code: Integer
|
|
161
|
+
attr_reader final_url: String
|
|
162
|
+
attr_reader content_type: String
|
|
163
|
+
attr_reader html: String
|
|
164
|
+
attr_reader body_size: Integer
|
|
165
|
+
attr_reader metadata: PageMetadata
|
|
166
|
+
attr_reader links: Array[LinkInfo]
|
|
167
|
+
attr_reader images: Array[ImageInfo]
|
|
168
|
+
attr_reader feeds: Array[FeedInfo]
|
|
169
|
+
attr_reader json_ld: Array[JsonLdEntry]
|
|
170
|
+
attr_reader is_allowed: bool
|
|
171
|
+
attr_reader crawl_delay: Integer?
|
|
172
|
+
attr_reader noindex_detected: bool
|
|
173
|
+
attr_reader nofollow_detected: bool
|
|
174
|
+
attr_reader x_robots_tag: String?
|
|
175
|
+
attr_reader is_pdf: bool
|
|
176
|
+
attr_reader was_skipped: bool
|
|
177
|
+
attr_reader detected_charset: String?
|
|
178
|
+
attr_reader auth_header_sent: bool
|
|
179
|
+
attr_reader response_meta: ResponseMeta?
|
|
180
|
+
attr_reader assets: Array[DownloadedAsset]
|
|
181
|
+
attr_reader js_render_hint: bool
|
|
182
|
+
attr_reader browser_used: bool
|
|
183
|
+
attr_reader markdown: MarkdownResult?
|
|
184
|
+
attr_reader extracted_data: String?
|
|
185
|
+
attr_reader extraction_meta: ExtractionMeta?
|
|
186
|
+
attr_reader screenshot_base64: String?
|
|
187
|
+
attr_reader downloaded_document: DownloadedDocument?
|
|
188
|
+
attr_reader browser: BrowserExtras?
|
|
189
|
+
|
|
190
|
+
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
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
class CrawlPageResult
|
|
194
|
+
attr_reader url: String
|
|
195
|
+
attr_reader normalized_url: String
|
|
196
|
+
attr_reader status_code: Integer
|
|
197
|
+
attr_reader content_type: String
|
|
198
|
+
attr_reader html: String
|
|
199
|
+
attr_reader body_size: Integer
|
|
200
|
+
attr_reader metadata: PageMetadata
|
|
201
|
+
attr_reader links: Array[LinkInfo]
|
|
202
|
+
attr_reader images: Array[ImageInfo]
|
|
203
|
+
attr_reader feeds: Array[FeedInfo]
|
|
204
|
+
attr_reader json_ld: Array[JsonLdEntry]
|
|
205
|
+
attr_reader depth: Integer
|
|
206
|
+
attr_reader stayed_on_domain: bool
|
|
207
|
+
attr_reader was_skipped: bool
|
|
208
|
+
attr_reader is_pdf: bool
|
|
209
|
+
attr_reader detected_charset: String?
|
|
210
|
+
attr_reader markdown: MarkdownResult?
|
|
211
|
+
attr_reader extracted_data: String?
|
|
212
|
+
attr_reader extraction_meta: ExtractionMeta?
|
|
213
|
+
attr_reader downloaded_document: DownloadedDocument?
|
|
214
|
+
attr_reader browser_used: bool
|
|
215
|
+
|
|
216
|
+
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
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
class CrawlResult
|
|
220
|
+
attr_reader pages: Array[CrawlPageResult]
|
|
221
|
+
attr_reader final_url: String
|
|
222
|
+
attr_reader redirect_count: Integer
|
|
223
|
+
attr_reader was_skipped: bool
|
|
224
|
+
attr_reader error: String?
|
|
225
|
+
attr_reader cookies: Array[CookieInfo]
|
|
226
|
+
attr_reader stayed_on_domain: bool
|
|
227
|
+
attr_reader browser_used: bool
|
|
228
|
+
|
|
229
|
+
def initialize: (?pages: Array[CrawlPageResult], ?final_url: String, ?redirect_count: Integer, ?was_skipped: bool, ?error: String, ?cookies: Array[CookieInfo], ?stayed_on_domain: bool, ?browser_used: bool) -> void
|
|
229
230
|
def unique_normalized_urls: () -> Integer
|
|
230
|
-
|
|
231
|
+
end
|
|
231
232
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
233
|
+
class SitemapUrl
|
|
234
|
+
attr_reader url: String
|
|
235
|
+
attr_reader lastmod: String?
|
|
236
|
+
attr_reader changefreq: String?
|
|
237
|
+
attr_reader priority: String?
|
|
237
238
|
|
|
238
239
|
def initialize: (?url: String, ?lastmod: String, ?changefreq: String, ?priority: String) -> void
|
|
239
|
-
|
|
240
|
+
end
|
|
240
241
|
|
|
241
|
-
|
|
242
|
-
|
|
242
|
+
class MapResult
|
|
243
|
+
attr_reader urls: Array[SitemapUrl]
|
|
243
244
|
|
|
244
|
-
def initialize: (?urls: Array[SitemapUrl]) -> void
|
|
245
|
-
|
|
245
|
+
def initialize: (?urls: Array[SitemapUrl]) -> void
|
|
246
|
+
end
|
|
246
247
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
248
|
+
class MarkdownResult
|
|
249
|
+
attr_reader content: String
|
|
250
|
+
attr_reader document_structure: String?
|
|
251
|
+
attr_reader tables: Array[String]
|
|
252
|
+
attr_reader warnings: Array[String]
|
|
253
|
+
attr_reader citations: bool
|
|
254
|
+
attr_reader fit_content: String?
|
|
254
255
|
|
|
255
|
-
def initialize: (?content: String, ?document_structure:
|
|
256
|
-
|
|
256
|
+
def initialize: (?content: String, ?document_structure: String, ?tables: Array[String], ?warnings: Array[String], ?citations: bool, ?fit_content: String) -> void
|
|
257
|
+
end
|
|
257
258
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
259
|
+
class LinkInfo
|
|
260
|
+
attr_reader url: String
|
|
261
|
+
attr_reader text: String
|
|
262
|
+
attr_reader link_type: LinkType
|
|
263
|
+
attr_reader rel: String?
|
|
264
|
+
attr_reader nofollow: bool
|
|
264
265
|
|
|
265
266
|
def initialize: (?url: String, ?text: String, ?link_type: LinkType, ?rel: String, ?nofollow: bool) -> void
|
|
266
|
-
|
|
267
|
+
end
|
|
267
268
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
269
|
+
class ImageInfo
|
|
270
|
+
attr_reader url: String
|
|
271
|
+
attr_reader alt: String?
|
|
272
|
+
attr_reader width: Integer?
|
|
273
|
+
attr_reader height: Integer?
|
|
274
|
+
attr_reader source: ImageSource
|
|
274
275
|
|
|
275
276
|
def initialize: (?url: String, ?alt: String, ?width: Integer, ?height: Integer, ?source: ImageSource) -> void
|
|
276
|
-
|
|
277
|
+
end
|
|
277
278
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
279
|
+
class FeedInfo
|
|
280
|
+
attr_reader url: String
|
|
281
|
+
attr_reader title: String?
|
|
282
|
+
attr_reader feed_type: FeedType
|
|
282
283
|
|
|
283
284
|
def initialize: (?url: String, ?title: String, ?feed_type: FeedType) -> void
|
|
284
|
-
|
|
285
|
+
end
|
|
285
286
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
287
|
+
class JsonLdEntry
|
|
288
|
+
attr_reader schema_type: String
|
|
289
|
+
attr_reader name: String?
|
|
290
|
+
attr_reader raw: String
|
|
290
291
|
|
|
291
292
|
def initialize: (?schema_type: String, ?name: String, ?raw: String) -> void
|
|
292
|
-
|
|
293
|
+
end
|
|
293
294
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
295
|
+
class CookieInfo
|
|
296
|
+
attr_reader name: String
|
|
297
|
+
attr_reader value: String
|
|
298
|
+
attr_reader domain: String?
|
|
299
|
+
attr_reader path: String?
|
|
299
300
|
|
|
300
301
|
def initialize: (?name: String, ?value: String, ?domain: String, ?path: String) -> void
|
|
301
|
-
|
|
302
|
+
end
|
|
302
303
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
304
|
+
class DownloadedAsset
|
|
305
|
+
attr_reader url: String
|
|
306
|
+
attr_reader content_hash: String
|
|
307
|
+
attr_reader mime_type: String?
|
|
308
|
+
attr_reader size: Integer
|
|
309
|
+
attr_reader asset_category: AssetCategory
|
|
310
|
+
attr_reader html_tag: String?
|
|
310
311
|
|
|
311
312
|
def initialize: (?url: String, ?content_hash: String, ?mime_type: String, ?size: Integer, ?asset_category: AssetCategory, ?html_tag: String) -> void
|
|
312
|
-
|
|
313
|
+
end
|
|
313
314
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
315
|
+
class ArticleMetadata
|
|
316
|
+
attr_reader published_time: String?
|
|
317
|
+
attr_reader modified_time: String?
|
|
318
|
+
attr_reader author: String?
|
|
319
|
+
attr_reader section: String?
|
|
320
|
+
attr_reader tags: Array[String]
|
|
320
321
|
|
|
321
|
-
def initialize: (?published_time: String, ?modified_time: String, ?author: String, ?section: String, ?tags: Array[String]) -> void
|
|
322
|
-
|
|
322
|
+
def initialize: (?published_time: String, ?modified_time: String, ?author: String, ?section: String, ?tags: Array[String]) -> void
|
|
323
|
+
end
|
|
323
324
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
325
|
+
class HreflangEntry
|
|
326
|
+
attr_reader lang: String
|
|
327
|
+
attr_reader url: String
|
|
327
328
|
|
|
328
329
|
def initialize: (?lang: String, ?url: String) -> void
|
|
329
|
-
|
|
330
|
+
end
|
|
330
331
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
332
|
+
class FaviconInfo
|
|
333
|
+
attr_reader url: String
|
|
334
|
+
attr_reader rel: String
|
|
335
|
+
attr_reader sizes: String?
|
|
336
|
+
attr_reader mime_type: String?
|
|
336
337
|
|
|
337
338
|
def initialize: (?url: String, ?rel: String, ?sizes: String, ?mime_type: String) -> void
|
|
338
|
-
|
|
339
|
+
end
|
|
339
340
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
341
|
+
class HeadingInfo
|
|
342
|
+
attr_reader level: Integer
|
|
343
|
+
attr_reader text: String
|
|
343
344
|
|
|
344
345
|
def initialize: (?level: Integer, ?text: String) -> void
|
|
345
|
-
|
|
346
|
+
end
|
|
346
347
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
348
|
+
class ResponseMeta
|
|
349
|
+
attr_reader etag: String?
|
|
350
|
+
attr_reader last_modified: String?
|
|
351
|
+
attr_reader cache_control: String?
|
|
352
|
+
attr_reader server: String?
|
|
353
|
+
attr_reader x_powered_by: String?
|
|
354
|
+
attr_reader content_language: String?
|
|
355
|
+
attr_reader content_encoding: String?
|
|
355
356
|
|
|
356
357
|
def initialize: (?etag: String, ?last_modified: String, ?cache_control: String, ?server: String, ?x_powered_by: String, ?content_language: String, ?content_encoding: String) -> void
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
def initialize: (?title: String, ?description: String, ?canonical_url: String, ?keywords: String, ?author: String, ?viewport: String, ?theme_color: String, ?generator: String, ?robots: String, ?html_lang: String, ?html_dir: String, ?og_title: String, ?og_type: String, ?og_image: String, ?og_description: String, ?og_url: String, ?og_site_name: String, ?og_locale: String, ?og_video: String, ?og_audio: String, ?og_locale_alternates: Array[String], ?twitter_card: String, ?twitter_title: String, ?twitter_description: String, ?twitter_image: String, ?twitter_site: String, ?twitter_creator: String, ?dc_title: String, ?dc_creator: String, ?dc_subject: String, ?dc_description: String, ?dc_publisher: String, ?dc_date: String, ?dc_type: String, ?dc_format: String, ?dc_identifier: String, ?dc_language: String, ?dc_rights: String, ?article: ArticleMetadata, ?hreflangs: Array[HreflangEntry], ?favicons: Array[FaviconInfo], ?headings: Array[HeadingInfo], ?word_count: Integer) -> void
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
358
|
+
end
|
|
359
|
+
|
|
360
|
+
class PageMetadata
|
|
361
|
+
attr_reader title: String?
|
|
362
|
+
attr_reader description: String?
|
|
363
|
+
attr_reader canonical_url: String?
|
|
364
|
+
attr_reader keywords: String?
|
|
365
|
+
attr_reader author: String?
|
|
366
|
+
attr_reader viewport: String?
|
|
367
|
+
attr_reader theme_color: String?
|
|
368
|
+
attr_reader generator: String?
|
|
369
|
+
attr_reader robots: String?
|
|
370
|
+
attr_reader html_lang: String?
|
|
371
|
+
attr_reader html_dir: String?
|
|
372
|
+
attr_reader og_title: String?
|
|
373
|
+
attr_reader og_type: String?
|
|
374
|
+
attr_reader og_image: String?
|
|
375
|
+
attr_reader og_description: String?
|
|
376
|
+
attr_reader og_url: String?
|
|
377
|
+
attr_reader og_site_name: String?
|
|
378
|
+
attr_reader og_locale: String?
|
|
379
|
+
attr_reader og_video: String?
|
|
380
|
+
attr_reader og_audio: String?
|
|
381
|
+
attr_reader og_locale_alternates: Array[String]?
|
|
382
|
+
attr_reader twitter_card: String?
|
|
383
|
+
attr_reader twitter_title: String?
|
|
384
|
+
attr_reader twitter_description: String?
|
|
385
|
+
attr_reader twitter_image: String?
|
|
386
|
+
attr_reader twitter_site: String?
|
|
387
|
+
attr_reader twitter_creator: String?
|
|
388
|
+
attr_reader dc_title: String?
|
|
389
|
+
attr_reader dc_creator: String?
|
|
390
|
+
attr_reader dc_subject: String?
|
|
391
|
+
attr_reader dc_description: String?
|
|
392
|
+
attr_reader dc_publisher: String?
|
|
393
|
+
attr_reader dc_date: String?
|
|
394
|
+
attr_reader dc_type: String?
|
|
395
|
+
attr_reader dc_format: String?
|
|
396
|
+
attr_reader dc_identifier: String?
|
|
397
|
+
attr_reader dc_language: String?
|
|
398
|
+
attr_reader dc_rights: String?
|
|
399
|
+
attr_reader article: ArticleMetadata?
|
|
400
|
+
attr_reader hreflangs: Array[HreflangEntry]?
|
|
401
|
+
attr_reader favicons: Array[FaviconInfo]?
|
|
402
|
+
attr_reader headings: Array[HeadingInfo]?
|
|
403
|
+
attr_reader word_count: Integer?
|
|
404
|
+
|
|
405
|
+
def initialize: (?title: String, ?description: String, ?canonical_url: String, ?keywords: String, ?author: String, ?viewport: String, ?theme_color: String, ?generator: String, ?robots: String, ?html_lang: String, ?html_dir: String, ?og_title: String, ?og_type: String, ?og_image: String, ?og_description: String, ?og_url: String, ?og_site_name: String, ?og_locale: String, ?og_video: String, ?og_audio: String, ?og_locale_alternates: Array[String], ?twitter_card: String, ?twitter_title: String, ?twitter_description: String, ?twitter_image: String, ?twitter_site: String, ?twitter_creator: String, ?dc_title: String, ?dc_creator: String, ?dc_subject: String, ?dc_description: String, ?dc_publisher: String, ?dc_date: String, ?dc_type: String, ?dc_format: String, ?dc_identifier: String, ?dc_language: String, ?dc_rights: String, ?article: ArticleMetadata, ?hreflangs: Array[HreflangEntry], ?favicons: Array[FaviconInfo], ?headings: Array[HeadingInfo], ?word_count: Integer) -> void
|
|
406
|
+
end
|
|
407
|
+
|
|
408
|
+
class CrawlStreamRequest
|
|
409
|
+
attr_reader url: String
|
|
409
410
|
|
|
410
411
|
def initialize: (?url: String) -> void
|
|
411
|
-
|
|
412
|
+
end
|
|
412
413
|
|
|
413
|
-
|
|
414
|
-
|
|
414
|
+
class BatchCrawlStreamRequest
|
|
415
|
+
attr_reader urls: Array[String]
|
|
415
416
|
|
|
416
|
-
def initialize: (?urls: Array[String]) -> void
|
|
417
|
-
|
|
417
|
+
def initialize: (?urls: Array[String]) -> void
|
|
418
|
+
end
|
|
418
419
|
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
420
|
+
class CitationResult
|
|
421
|
+
attr_reader content: String
|
|
422
|
+
attr_reader references: Array[CitationReference]
|
|
422
423
|
|
|
423
|
-
def initialize: (?content: String, ?references: Array[CitationReference]) -> void
|
|
424
|
-
|
|
424
|
+
def initialize: (?content: String, ?references: Array[CitationReference]) -> void
|
|
425
|
+
end
|
|
425
426
|
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
427
|
+
class CitationReference
|
|
428
|
+
attr_reader index: Integer
|
|
429
|
+
attr_reader url: String
|
|
430
|
+
attr_reader text: String
|
|
430
431
|
|
|
431
432
|
def initialize: (?index: Integer, ?url: String, ?text: String) -> void
|
|
432
|
-
|
|
433
|
+
end
|
|
433
434
|
|
|
434
|
-
|
|
435
|
-
def crawl_stream: (CrawlStreamRequest req) -> Enumerator[CrawlEvent]
|
|
436
|
-
def batch_crawl_stream: (BatchCrawlStreamRequest req) -> Enumerator[CrawlEvent]
|
|
437
|
-
|
|
435
|
+
class CrawlEngineHandle
|
|
436
|
+
def crawl_stream: (CrawlStreamRequest req) -> Enumerator[CrawlEvent]
|
|
437
|
+
def batch_crawl_stream: (BatchCrawlStreamRequest req) -> Enumerator[CrawlEvent]
|
|
438
|
+
end
|
|
438
439
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
440
|
+
class BatchScrapeResult
|
|
441
|
+
attr_reader url: String
|
|
442
|
+
attr_reader result: ScrapeResult?
|
|
443
|
+
attr_reader error: String?
|
|
443
444
|
|
|
444
445
|
def initialize: (?url: String, ?result: ScrapeResult, ?error: String) -> void
|
|
445
|
-
|
|
446
|
+
end
|
|
446
447
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
448
|
+
class BatchCrawlResult
|
|
449
|
+
attr_reader url: String
|
|
450
|
+
attr_reader result: CrawlResult?
|
|
451
|
+
attr_reader error: String?
|
|
451
452
|
|
|
452
453
|
def initialize: (?url: String, ?result: CrawlResult, ?error: String) -> void
|
|
453
|
-
|
|
454
|
+
end
|
|
454
455
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
456
|
+
class BatchScrapeResults
|
|
457
|
+
attr_reader results: Array[BatchScrapeResult]
|
|
458
|
+
attr_reader total_count: Integer
|
|
459
|
+
attr_reader completed_count: Integer
|
|
460
|
+
attr_reader failed_count: Integer
|
|
460
461
|
|
|
461
|
-
def initialize: (?results: Array[BatchScrapeResult], ?total_count: Integer, ?completed_count: Integer, ?failed_count: Integer) -> void
|
|
462
|
-
|
|
462
|
+
def initialize: (?results: Array[BatchScrapeResult], ?total_count: Integer, ?completed_count: Integer, ?failed_count: Integer) -> void
|
|
463
|
+
end
|
|
463
464
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
465
|
+
class BatchCrawlResults
|
|
466
|
+
attr_reader results: Array[BatchCrawlResult]
|
|
467
|
+
attr_reader total_count: Integer
|
|
468
|
+
attr_reader completed_count: Integer
|
|
469
|
+
attr_reader failed_count: Integer
|
|
469
470
|
|
|
470
|
-
def initialize: (?results: Array[BatchCrawlResult], ?total_count: Integer, ?completed_count: Integer, ?failed_count: Integer) -> void
|
|
471
|
-
|
|
471
|
+
def initialize: (?results: Array[BatchCrawlResult], ?total_count: Integer, ?completed_count: Integer, ?failed_count: Integer) -> void
|
|
472
|
+
end
|
|
472
473
|
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
474
|
+
class SsrfPolicy
|
|
475
|
+
attr_reader deny_private: bool
|
|
476
|
+
attr_reader allowlist: Array[HostMatcher]
|
|
477
|
+
attr_reader max_redirects: Integer
|
|
477
478
|
|
|
478
|
-
def initialize: (?deny_private: bool, ?allowlist: Array[HostMatcher], ?max_redirects: Integer) -> void
|
|
479
|
-
|
|
480
|
-
def self.from_env: () -> SsrfPolicy
|
|
481
|
-
end
|
|
479
|
+
def initialize: (?deny_private: bool, ?allowlist: Array[HostMatcher], ?max_redirects: Integer) -> void
|
|
480
|
+
end
|
|
482
481
|
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
482
|
+
class BrowserMode
|
|
483
|
+
type value = :auto | :always | :never | :stealth
|
|
484
|
+
end
|
|
486
485
|
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
486
|
+
class BrowserWait
|
|
487
|
+
type value = :network_idle | :selector | :fixed
|
|
488
|
+
end
|
|
490
489
|
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
490
|
+
class BrowserBackend
|
|
491
|
+
type value = :chromiumoxide | :native
|
|
492
|
+
end
|
|
494
493
|
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
494
|
+
class DocumentContentEncoding
|
|
495
|
+
type value = :base64
|
|
496
|
+
end
|
|
498
497
|
|
|
499
|
-
|
|
500
|
-
|
|
498
|
+
class CrawlStrategyKind
|
|
499
|
+
type value = :bfs | :dfs | :best_first | :adaptive
|
|
500
|
+
end
|
|
501
501
|
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
502
|
+
class ContentFilterKind
|
|
503
|
+
type value = :bm25
|
|
504
|
+
end
|
|
505
505
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
end
|
|
506
|
+
class AuthConfig
|
|
507
|
+
end
|
|
509
508
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
509
|
+
class LinkType
|
|
510
|
+
type value = :internal | :external | :anchor | :document
|
|
511
|
+
end
|
|
513
512
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
513
|
+
class ImageSource
|
|
514
|
+
type value = :img | :picture_source | :og:image | :twitter:image
|
|
515
|
+
end
|
|
517
516
|
|
|
518
|
-
|
|
519
|
-
|
|
517
|
+
class FeedType
|
|
518
|
+
type value = :rss | :atom | :json_feed
|
|
519
|
+
end
|
|
520
520
|
|
|
521
|
-
|
|
522
|
-
|
|
521
|
+
class AssetCategory
|
|
522
|
+
type value = :document | :image | :audio | :video | :font | :stylesheet | :script | :archive | :data | :other
|
|
523
|
+
end
|
|
523
524
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
end
|
|
525
|
+
class CrawlEvent
|
|
526
|
+
end
|
|
527
527
|
|
|
528
|
-
|
|
529
|
-
|
|
528
|
+
class PageAction
|
|
529
|
+
end
|
|
530
530
|
|
|
531
|
-
|
|
531
|
+
class ScrollDirection
|
|
532
|
+
type value = :up | :down
|
|
533
|
+
end
|
|
532
534
|
|
|
533
|
-
|
|
535
|
+
class HostMatcher
|
|
536
|
+
end
|
|
534
537
|
|
|
535
|
-
def self.
|
|
538
|
+
def self.generate_citations: (String markdown) -> CitationResult
|
|
536
539
|
|
|
537
|
-
def self.
|
|
540
|
+
def self.create_engine: (?CrawlConfig config) -> CrawlEngineHandle
|
|
538
541
|
|
|
539
|
-
def self.
|
|
542
|
+
def self.scrape: (CrawlEngineHandle engine, String url) -> ScrapeResult
|
|
540
543
|
|
|
541
|
-
def self.
|
|
544
|
+
def self.crawl: (CrawlEngineHandle engine, String url) -> CrawlResult
|
|
542
545
|
|
|
543
|
-
def self.
|
|
546
|
+
def self.map_urls: (CrawlEngineHandle engine, String url) -> MapResult
|
|
544
547
|
|
|
545
|
-
def self.
|
|
548
|
+
def self.interact: (CrawlEngineHandle engine, String url, Array[PageAction] actions) -> InteractionResult
|
|
549
|
+
|
|
550
|
+
def self.batch_scrape: (CrawlEngineHandle engine, Array[String] urls) -> BatchScrapeResults
|
|
551
|
+
|
|
552
|
+
def self.batch_crawl: (CrawlEngineHandle engine, Array[String] urls) -> BatchCrawlResults
|
|
546
553
|
|
|
547
554
|
end
|