ethon-impersonate 0.17.9-arm64-darwin → 0.17.10-arm64-darwin
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/CHANGELOG.md +56 -56
- data/LICENSE +1 -0
- data/README.md +69 -21
- data/ethon-impersonate.gemspec +2 -2
- data/ext/libcurl-impersonate.4.dylib +0 -0
- data/lib/ethon_impersonate/curls/classes.rb +1 -1
- data/lib/ethon_impersonate/impersonate/settings.rb +3 -2
- data/lib/ethon_impersonate/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 886c392f13844de4eda80ea045e12d12c994473ef6e11bdf76b5f71fe5fd9888
|
|
4
|
+
data.tar.gz: 729ad911522dcfad444d0f222869321c1ae2e841dbea3264f46d0091ed81c1a3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bd81abda514bcf6027601b6b748bb5625b9ddd1c5c1513bb9470598a4a1c59d3c4a390a9c1dfc2c5a0c4e13779092deb277a112502e7bfe4d710bbf4d50ac94f
|
|
7
|
+
data.tar.gz: 1df8e015dcfb3f7f302a1caac80050900e53023085b831aa44563d3abe411958a1b6688c70717c67e763d4cf61e4fb4b088aebfb190e7bbe15f116bc3a93c5cd
|
data/CHANGELOG.md
CHANGED
|
@@ -2,61 +2,61 @@
|
|
|
2
2
|
|
|
3
3
|
## Master
|
|
4
4
|
|
|
5
|
-
[Full Changelog](https://github.com/
|
|
5
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.17.9...master)
|
|
6
6
|
|
|
7
7
|
## 0.17.9
|
|
8
8
|
|
|
9
|
-
[Full Changelog](https://github.com/
|
|
9
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.17.8...v0.17.9)
|
|
10
10
|
|
|
11
11
|
* Bumped [`curl-impersonate`](https://github.com/lexiforest/curl-impersonate) to `v1.0.0`
|
|
12
12
|
|
|
13
13
|
## 0.17.8
|
|
14
14
|
|
|
15
|
-
[Full Changelog](https://github.com/
|
|
15
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.16.0...v0.17.8)
|
|
16
16
|
|
|
17
17
|
* Added basic support for [`curl-impersonate`](https://github.com/lexiforest/curl-impersonate) @ `v1.0.0rc1`
|
|
18
18
|
|
|
19
19
|
## 0.16.0
|
|
20
20
|
|
|
21
|
-
[Full Changelog](https://github.com/
|
|
21
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.15.0...v0.16.0)
|
|
22
22
|
|
|
23
23
|
* Added `redirect_url` value to available informations and `Easy::Mirror`.
|
|
24
24
|
([Adrien Rey-Jarthon](https://github.com/jarthod)
|
|
25
25
|
|
|
26
26
|
## 0.15.0
|
|
27
27
|
|
|
28
|
-
[Full Changelog](https://github.com/
|
|
28
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.14.0...v0.15.0)
|
|
29
29
|
|
|
30
30
|
## 0.12.0
|
|
31
31
|
|
|
32
|
-
[Full Changelog](https://github.com/
|
|
32
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.11.0...v0.12.0)
|
|
33
33
|
|
|
34
|
-
- Removed deprecated `CURLE_SSL_CACERT` pinned in curl v7.62.0 ([@arku](https://github.com/arku) in [#158](https://github.com/
|
|
34
|
+
- Removed deprecated `CURLE_SSL_CACERT` pinned in curl v7.62.0 ([@arku](https://github.com/arku) in [#158](https://github.com/serpapi/ethon-impersonate/pull/158))
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
## 0.11.0
|
|
38
38
|
|
|
39
|
-
[Full Changelog](https://github.com/
|
|
39
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.10.1...v0.11.0)
|
|
40
40
|
|
|
41
41
|
## 0.10.1
|
|
42
42
|
|
|
43
|
-
[Full Changelog](https://github.com/
|
|
43
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.10.0...v0.10.1)
|
|
44
44
|
|
|
45
45
|
## 0.10.0
|
|
46
46
|
|
|
47
|
-
[Full Changelog](https://github.com/
|
|
47
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.9.1...v0.10.0)
|
|
48
48
|
|
|
49
49
|
## 0.9.1
|
|
50
50
|
|
|
51
|
-
[Full Changelog](https://github.com/
|
|
51
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.9.0...v0.9.1)
|
|
52
52
|
|
|
53
53
|
## 0.9.0
|
|
54
54
|
|
|
55
|
-
[Full Changelog](https://github.com/
|
|
55
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.8.1...v0.9.0)
|
|
56
56
|
|
|
57
57
|
## 0.8.1
|
|
58
58
|
|
|
59
|
-
[Full Changelog](https://github.com/
|
|
59
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.8.0...v0.8.1)
|
|
60
60
|
|
|
61
61
|
* Support optional escaping of params.
|
|
62
62
|
([Tasos Laskos](https://github.com/zapotek)
|
|
@@ -65,24 +65,24 @@
|
|
|
65
65
|
|
|
66
66
|
## 0.8.0
|
|
67
67
|
|
|
68
|
-
[Full Changelog](https://github.com/
|
|
68
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.7.3...v0.7.4)
|
|
69
69
|
|
|
70
70
|
* `Easy::Mirror`: Reduced object allocations and method calls during info handling.
|
|
71
71
|
([Tasos Laskos](https://github.com/zapotek)
|
|
72
72
|
|
|
73
73
|
## 0.7.4
|
|
74
74
|
|
|
75
|
-
[Full Changelog](https://github.com/
|
|
75
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.7.3...v0.7.4)
|
|
76
76
|
|
|
77
77
|
* Support different array encodings for params.
|
|
78
|
-
([Marcello Barnaba](https://github.com/ifad), [\#104](https://github.com/
|
|
78
|
+
([Marcello Barnaba](https://github.com/ifad), [\#104](https://github.com/serpapi/ethon-impersonate/pull/104))
|
|
79
79
|
* Programtic access to version infos.
|
|
80
|
-
([Jonas Wagner](https://github.com/jwagner), [\#90](https://github.com/
|
|
80
|
+
([Jonas Wagner](https://github.com/jwagner), [\#90](https://github.com/serpapi/ethon-impersonate/pull/90))
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
## 0.7.3
|
|
84
84
|
|
|
85
|
-
[Full Changelog](https://github.com/
|
|
85
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.7.2...v0.7.3)
|
|
86
86
|
|
|
87
87
|
* `EthonImpersonate::Curl::FDSet`
|
|
88
88
|
* Set `:fd_array` size to the current MS Windows `FD_SETSIZE` (2048).
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
|
|
94
94
|
## 0.7.2
|
|
95
95
|
|
|
96
|
-
[Full Changelog](https://github.com/
|
|
96
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.7.1...v0.7.2)
|
|
97
97
|
|
|
98
98
|
* FFI data-types updated to be more correct.
|
|
99
99
|
|
|
@@ -108,25 +108,25 @@ Not backwards compatible changes:
|
|
|
108
108
|
|
|
109
109
|
* `mime-types` are no longer a dependency. The gem will be still used if available to determine the mime type of a file which is uploaded. That means you have to have take care of the gem installation yourself.
|
|
110
110
|
|
|
111
|
-
[Full Changelog](https://github.com/
|
|
111
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.6.3...v0.7.0)
|
|
112
112
|
|
|
113
113
|
## 0.6.3
|
|
114
114
|
|
|
115
|
-
[Full Changelog](https://github.com/
|
|
115
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.6.2...v0.6.3)
|
|
116
116
|
|
|
117
117
|
## 0.6.2
|
|
118
118
|
|
|
119
|
-
[Full Changelog](https://github.com/
|
|
119
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.6.1...v0.6.2)
|
|
120
120
|
|
|
121
121
|
## 0.6.1
|
|
122
122
|
|
|
123
|
-
[Full Changelog](https://github.com/
|
|
123
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.6.0...v0.6.1)
|
|
124
124
|
|
|
125
125
|
The changelog entries are coming soon!
|
|
126
126
|
|
|
127
127
|
## 0.6.0
|
|
128
128
|
|
|
129
|
-
[Full Changelog](https://github.com/
|
|
129
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.12...v0.6.0)
|
|
130
130
|
|
|
131
131
|
The changelog entries are coming soon!
|
|
132
132
|
|
|
@@ -137,59 +137,59 @@ Bugfixes:
|
|
|
137
137
|
|
|
138
138
|
## 0.5.12
|
|
139
139
|
|
|
140
|
-
[Full Changelog](https://github.com/
|
|
140
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.11...v0.5.12)
|
|
141
141
|
|
|
142
142
|
Enhancements:
|
|
143
143
|
|
|
144
144
|
* Performance optimizations.
|
|
145
|
-
([Kyle Oppenheim](https://github.com/koppenheim) and [Richie Vos](https://github.com/richievos), [\#48](https://github.com/
|
|
145
|
+
([Kyle Oppenheim](https://github.com/koppenheim) and [Richie Vos](https://github.com/richievos), [\#48](https://github.com/serpapi/ethon-impersonate/pull/48))
|
|
146
146
|
* Reuse memory pointer.
|
|
147
|
-
([Richie Vos](https://github.com/richievos), [\#49](https://github.com/
|
|
147
|
+
([Richie Vos](https://github.com/richievos), [\#49](https://github.com/serpapi/ethon-impersonate/pull/49))
|
|
148
148
|
|
|
149
149
|
Bugfixes:
|
|
150
150
|
|
|
151
151
|
* Fix windows install.
|
|
152
|
-
([Derik Olsson](https://github.com/derikolsson), [\#47](https://github.com/
|
|
152
|
+
([Derik Olsson](https://github.com/derikolsson), [\#47](https://github.com/serpapi/ethon-impersonate/pull/47))
|
|
153
153
|
* Handle urls that already contain query params.
|
|
154
|
-
([Turner King](https://github.com/turnerking ), [\#45](https://github.com/
|
|
154
|
+
([Turner King](https://github.com/turnerking ), [\#45](https://github.com/serpapi/ethon-impersonate/pull/45))
|
|
155
155
|
|
|
156
156
|
## 0.5.11
|
|
157
157
|
|
|
158
|
-
[Full Changelog](https://github.com/
|
|
158
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.10...v0.5.11)
|
|
159
159
|
|
|
160
160
|
Enhancements:
|
|
161
161
|
|
|
162
162
|
* Add support for postredirs, unrestricted_auth.
|
|
163
163
|
* Add support for cookie, cookiejar, cookiefile.
|
|
164
|
-
([erwanlr](https://github.com/erwanlr), [\#46](https://github.com/
|
|
164
|
+
([erwanlr](https://github.com/erwanlr), [\#46](https://github.com/serpapi/ethon-impersonate/pull/46))
|
|
165
165
|
* Relax ffi requirements.
|
|
166
|
-
([voxik](https://github.com/voxik), [\#40](https://github.com/
|
|
166
|
+
([voxik](https://github.com/voxik), [\#40](https://github.com/serpapi/ethon-impersonate/pull/40))
|
|
167
167
|
* Various documentation improvements.
|
|
168
168
|
([Craig Little](https://github.com/craiglittle))
|
|
169
169
|
|
|
170
170
|
Bugfixes:
|
|
171
171
|
|
|
172
172
|
* Fix the memory leaks.
|
|
173
|
-
([Richie Vos](https://github.com/richievos), [\#45](https://github.com/
|
|
173
|
+
([Richie Vos](https://github.com/richievos), [\#45](https://github.com/serpapi/ethon-impersonate/pull/45))
|
|
174
174
|
|
|
175
175
|
## 0.5.10
|
|
176
176
|
|
|
177
|
-
[Full Changelog](https://github.com/
|
|
177
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.9...v0.5.10)
|
|
178
178
|
|
|
179
179
|
Enhancements:
|
|
180
180
|
|
|
181
181
|
* Allow custom requests.
|
|
182
|
-
([Nathan Sutton](https://github.com/nate), [\#36](https://github.com/
|
|
182
|
+
([Nathan Sutton](https://github.com/nate), [\#36](https://github.com/serpapi/ethon-impersonate/pull/36))
|
|
183
183
|
* Use updated version of FFI.
|
|
184
184
|
|
|
185
185
|
Bugfixes:
|
|
186
186
|
|
|
187
187
|
* Fix windows install issue.
|
|
188
|
-
([brainsucker](https://github.com/brainsucker), [\#38](https://github.com/
|
|
188
|
+
([brainsucker](https://github.com/brainsucker), [\#38](https://github.com/serpapi/ethon-impersonate/pull/38))
|
|
189
189
|
|
|
190
190
|
## 0.5.9
|
|
191
191
|
|
|
192
|
-
[Full Changelog](https://github.com/
|
|
192
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.8...v0.5.9)
|
|
193
193
|
|
|
194
194
|
Enhancements:
|
|
195
195
|
|
|
@@ -197,17 +197,17 @@ Enhancements:
|
|
|
197
197
|
|
|
198
198
|
## 0.5.8
|
|
199
199
|
|
|
200
|
-
[Full Changelog](https://github.com/
|
|
200
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.7...v0.5.8)
|
|
201
201
|
|
|
202
202
|
Enhancements:
|
|
203
203
|
|
|
204
204
|
* Add support for protocols and redir_protocols(
|
|
205
205
|
[libcurl SASL buffer overflow vulnerability](http://curl.haxx.se/docs/adv_20130206.html)).
|
|
206
|
-
* Add max_send_speed_large and max_recv_speed_large([Paul Schuegraf](https://github.com/pschuegr), [\#33](https://github.com/
|
|
206
|
+
* Add max_send_speed_large and max_recv_speed_large([Paul Schuegraf](https://github.com/pschuegr), [\#33](https://github.com/serpapi/ethon-impersonate/pull/33))
|
|
207
207
|
|
|
208
208
|
## 0.5.7
|
|
209
209
|
|
|
210
|
-
[Full Changelog](https://github.com/
|
|
210
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.6...v0.5.7)
|
|
211
211
|
|
|
212
212
|
Enhancements:
|
|
213
213
|
|
|
@@ -215,7 +215,7 @@ Enhancements:
|
|
|
215
215
|
|
|
216
216
|
## 0.5.6
|
|
217
217
|
|
|
218
|
-
[Full Changelog](https://github.com/
|
|
218
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.4...v0.5.6)
|
|
219
219
|
|
|
220
220
|
Bugfixes:
|
|
221
221
|
|
|
@@ -223,7 +223,7 @@ Bugfixes:
|
|
|
223
223
|
|
|
224
224
|
## 0.5.4
|
|
225
225
|
|
|
226
|
-
[Full Changelog](https://github.com/
|
|
226
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.3...v0.5.4)
|
|
227
227
|
|
|
228
228
|
Enhancements:
|
|
229
229
|
|
|
@@ -233,7 +233,7 @@ Enhancements:
|
|
|
233
233
|
|
|
234
234
|
## 0.5.3
|
|
235
235
|
|
|
236
|
-
[Full Changelog](https://github.com/
|
|
236
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.2...v0.5.3)
|
|
237
237
|
|
|
238
238
|
Enhancements:
|
|
239
239
|
|
|
@@ -248,7 +248,7 @@ Bugfixes:
|
|
|
248
248
|
|
|
249
249
|
## 0.5.2
|
|
250
250
|
|
|
251
|
-
[Full Changelog](https://github.com/
|
|
251
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.1...v0.5.2)
|
|
252
252
|
|
|
253
253
|
Enhancements:
|
|
254
254
|
|
|
@@ -261,7 +261,7 @@ Bugfixes:
|
|
|
261
261
|
|
|
262
262
|
## 0.5.1
|
|
263
263
|
|
|
264
|
-
[Full Changelog](https://github.com/
|
|
264
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.5.0...v0.5.1)
|
|
265
265
|
|
|
266
266
|
Bugfixes:
|
|
267
267
|
|
|
@@ -270,7 +270,7 @@ Bugfixes:
|
|
|
270
270
|
|
|
271
271
|
## 0.5.0
|
|
272
272
|
|
|
273
|
-
[Full Changelog](https://github.com/
|
|
273
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.4.4...v0.5.0)
|
|
274
274
|
|
|
275
275
|
Enhancements:
|
|
276
276
|
|
|
@@ -284,7 +284,7 @@ Bugfixes:
|
|
|
284
284
|
|
|
285
285
|
## 0.4.4
|
|
286
286
|
|
|
287
|
-
[Full Changelog](https://github.com/
|
|
287
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.4.3...v0.4.4)
|
|
288
288
|
|
|
289
289
|
Enhancements:
|
|
290
290
|
|
|
@@ -292,7 +292,7 @@ Enhancements:
|
|
|
292
292
|
|
|
293
293
|
## 0.4.3
|
|
294
294
|
|
|
295
|
-
[Full Changelog](https://github.com/
|
|
295
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.4.2...v0.4.3)
|
|
296
296
|
|
|
297
297
|
Enhancements:
|
|
298
298
|
|
|
@@ -307,7 +307,7 @@ Bugfixes:
|
|
|
307
307
|
|
|
308
308
|
## 0.4.2
|
|
309
309
|
|
|
310
|
-
[Full Changelog](https://github.com/
|
|
310
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.4.1...v0.4.2)
|
|
311
311
|
|
|
312
312
|
Enhancements:
|
|
313
313
|
|
|
@@ -316,7 +316,7 @@ Enhancements:
|
|
|
316
316
|
|
|
317
317
|
## 0.4.1
|
|
318
318
|
|
|
319
|
-
[Full Changelog](https://github.com/
|
|
319
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.4.0...v0.4.1)
|
|
320
320
|
|
|
321
321
|
Bugfixes:
|
|
322
322
|
|
|
@@ -325,7 +325,7 @@ Bugfixes:
|
|
|
325
325
|
|
|
326
326
|
## 0.4.0
|
|
327
327
|
|
|
328
|
-
[Full Changelog](https://github.com/
|
|
328
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.3.0...v0.4.0)
|
|
329
329
|
|
|
330
330
|
Enhancements:
|
|
331
331
|
|
|
@@ -340,7 +340,7 @@ Bugfixes:
|
|
|
340
340
|
|
|
341
341
|
## 0.3.0
|
|
342
342
|
|
|
343
|
-
[Full Changelog](https://github.com/
|
|
343
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.2.0...v0.3.0)
|
|
344
344
|
|
|
345
345
|
Enhancements:
|
|
346
346
|
|
|
@@ -353,7 +353,7 @@ Bugfixes:
|
|
|
353
353
|
|
|
354
354
|
## 0.2.0
|
|
355
355
|
|
|
356
|
-
[Full Changelog](https://github.com/
|
|
356
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.1.0...v0.2.0)
|
|
357
357
|
|
|
358
358
|
Enhancements:
|
|
359
359
|
|
|
@@ -365,12 +365,12 @@ Enhancements:
|
|
|
365
365
|
|
|
366
366
|
## 0.1.0
|
|
367
367
|
|
|
368
|
-
[Full Changelog](https://github.com/
|
|
368
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.0.2...v0.1.0)
|
|
369
369
|
|
|
370
370
|
Enhancements:
|
|
371
371
|
|
|
372
372
|
* Documentation
|
|
373
|
-
( [Alex P](https://github.com/ifesdjeen), [\#13](https://github.com/
|
|
373
|
+
( [Alex P](https://github.com/ifesdjeen), [\#13](https://github.com/typhoeus/ethon/issues/13) )
|
|
374
374
|
* New libcurl option dns_cache_timeout
|
|
375
375
|
( [Chris Heald](https://github.com/cheald), [\#192](https://github.com/typhoeus/typhoeus/pull/192) )
|
|
376
376
|
|
|
@@ -381,7 +381,7 @@ Bugfixes:
|
|
|
381
381
|
|
|
382
382
|
## 0.0.2
|
|
383
383
|
|
|
384
|
-
[Full Changelog](https://github.com/
|
|
384
|
+
[Full Changelog](https://github.com/serpapi/ethon-impersonate/compare/v0.0.1...v0.0.2)
|
|
385
385
|
|
|
386
386
|
Bugfixes:
|
|
387
387
|
|
data/LICENSE
CHANGED
data/README.md
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
# Ethon Impersonate     
|
|
4
|
+
|
|
1
5
|
[](https://badge.fury.io/rb/ethon-impersonate)
|
|
2
|
-
[](https://github.com/serpapi/ethon-impersonate/actions/workflows/ruby.yml)
|
|
3
7
|
|
|
4
|
-
|
|
8
|
+
**Ethon Impersonate** is a fork of [Ethon](https://github.com/typhoeus/ethon) that wraps [libcurl-impersonate](https://github.com/lexiforest/curl-impersonate).
|
|
5
9
|
|
|
6
10
|
In Greek mythology, Ethon, the son of Typhoeus and Echidna, is a gigantic eagle. So much for the history.
|
|
7
|
-
|
|
11
|
+
|
|
12
|
+
This allows you to make HTTP requests that appear to come from real browsers, helping to bypass bot detection and fingerprinting.
|
|
8
13
|
|
|
9
14
|
## Installation
|
|
10
15
|
|
|
@@ -18,6 +23,15 @@ With rubygems:
|
|
|
18
23
|
gem install ethon-impersonate
|
|
19
24
|
```
|
|
20
25
|
|
|
26
|
+
## Dependencies
|
|
27
|
+
On MacOS Apple Silicon, you need to install the following dependencies using Homebrew:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
brew install libidn2 rtmpdump zstd
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Note: Homebrew must be loaded in the same arch than the Ruby interpreter. If you are using `arch -x86_64` to run Ruby, you must also run Homebrew with `arch -x86_64 brew install ...`.
|
|
34
|
+
|
|
21
35
|
## Usage
|
|
22
36
|
|
|
23
37
|
Making the first request is simple:
|
|
@@ -47,6 +61,52 @@ easy.response_body
|
|
|
47
61
|
#=> "<!doctype html><html ..."
|
|
48
62
|
```
|
|
49
63
|
|
|
64
|
+
## Browser Impersonation
|
|
65
|
+
|
|
66
|
+
The main feature of this gem is the ability to impersonate real browsers. Use the `impersonate` method to configure the request to look like it's coming from a specific browser:
|
|
67
|
+
|
|
68
|
+
```ruby
|
|
69
|
+
easy = EthonImpersonate::Easy.new(url: "www.example.com")
|
|
70
|
+
easy.impersonate("chrome136") # Impersonate Chrome 136
|
|
71
|
+
easy.perform
|
|
72
|
+
easy.response_code
|
|
73
|
+
#=> 200
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Available Browser Targets
|
|
77
|
+
|
|
78
|
+
The gem supports all browser targets available in curl-impersonate. Some popular targets include:
|
|
79
|
+
|
|
80
|
+
- **Chrome**: `chrome136`, `chrome131_android`
|
|
81
|
+
- **Firefox**: `firefox135`
|
|
82
|
+
- **Safari**: `safari184`, `safari184_ios`
|
|
83
|
+
- **Edge**: `edge101`
|
|
84
|
+
- **Tor**: `tor145`
|
|
85
|
+
|
|
86
|
+
For a complete list of available targets, see the [curl-impersonate bin directory](https://github.com/lexiforest/curl-impersonate/tree/main/bin).
|
|
87
|
+
|
|
88
|
+
### Example with Browser Impersonation
|
|
89
|
+
|
|
90
|
+
```ruby
|
|
91
|
+
# Impersonate Chrome 136
|
|
92
|
+
easy = EthonImpersonate::Easy.new(url: "https://tls.browserleaks.com/json")
|
|
93
|
+
easy.impersonate("chrome136")
|
|
94
|
+
easy.perform
|
|
95
|
+
#=> :ok
|
|
96
|
+
|
|
97
|
+
# Impersonate Firefox 135
|
|
98
|
+
easy = EthonImpersonate::Easy.new(url: "https://tls.browserleaks.com/json")
|
|
99
|
+
easy.impersonate("firefox135")
|
|
100
|
+
easy.perform
|
|
101
|
+
#=> :ok
|
|
102
|
+
|
|
103
|
+
# Impersonate Safari 184
|
|
104
|
+
easy = EthonImpersonate::Easy.new(url: "https://tls.browserleaks.com/json")
|
|
105
|
+
easy.impersonate("safari184")
|
|
106
|
+
easy.perform
|
|
107
|
+
#=> :ok
|
|
108
|
+
```
|
|
109
|
+
|
|
50
110
|
## Http
|
|
51
111
|
|
|
52
112
|
In order to make life easier, there are some helpers for making HTTP requests:
|
|
@@ -91,26 +151,14 @@ multi.add(easy)
|
|
|
91
151
|
multi.perform
|
|
92
152
|
```
|
|
93
153
|
|
|
94
|
-
##
|
|
154
|
+
## Sponsors
|
|
95
155
|
|
|
96
|
-
|
|
156
|
+
Ethon Impersonate is maintained by **SerpApi**.
|
|
97
157
|
|
|
98
|
-
|
|
158
|
+
Thanks to all <a href="https://github.com/serpapi/ethon-impersonate/graphs/contributors">contributors</a> of this project past and present.
|
|
99
159
|
|
|
100
|
-
|
|
101
|
-
copy of this software and associated documentation files (the "Software"),
|
|
102
|
-
to deal in the Software without restriction, including without
|
|
103
|
-
limitation the rights to use, copy, modify, merge, publish, distribute,
|
|
104
|
-
sublicense, and/or sell copies of the Software, and to permit persons
|
|
105
|
-
to whom the Software is furnished to do so, subject to the following conditions:
|
|
160
|
+
------
|
|
106
161
|
|
|
107
|
-
|
|
108
|
-
in all copies or substantial portions of the Software.
|
|
162
|
+
<a href="https://serpapi.com/" target="_blank"><img src="https://raw.githubusercontent.com/serpapi/ethon-impersonate/master/assets/serpapi.png" alt="SerpAPI" height="67" width="63"></a>
|
|
109
163
|
|
|
110
|
-
|
|
111
|
-
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
112
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
113
|
-
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
114
|
-
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
115
|
-
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
116
|
-
OTHER DEALINGS IN THE SOFTWARE.
|
|
164
|
+
Scrape Google and other search engines from [SerpApi](https://serpapi.com/)'s fast, easy, and complete API. 0.66s average response time (≤ 0.5s for Ludicrous Speed Max accounts), 99.95% SLAs, pay for successful responses only.
|
data/ethon-impersonate.gemspec
CHANGED
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
|
11
11
|
s.platform = Gem::Platform::RUBY
|
|
12
12
|
s.authors = ["David Sojevic", "Hans Hasselberg"]
|
|
13
13
|
s.email = ["david@sojevic.com"]
|
|
14
|
-
s.homepage = "https://github.com/
|
|
14
|
+
s.homepage = "https://github.com/serpapi/ethon-impersonate"
|
|
15
15
|
s.summary = "Impersonate browser-like HTTP requests."
|
|
16
16
|
s.description = "Realistic browser-like HTTP requests using curl-impersonate's impersonation capabilities."
|
|
17
17
|
|
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
|
23
23
|
|
|
24
24
|
s.files = Dir.chdir(__dir__) do
|
|
25
25
|
`git ls-files -z`.split("\x0")
|
|
26
|
-
end.reject { |file| file.start_with?(*%w[. Gemfile Guardfile Rakefile profile spec scripts]) || file.end_with?(".gitignore") }
|
|
26
|
+
end.reject { |file| file.start_with?(*%w[. Gemfile Guardfile Rakefile profile spec scripts assets]) || file.end_with?(".gitignore") }
|
|
27
27
|
|
|
28
28
|
s.require_path = "lib"
|
|
29
29
|
end
|
|
Binary file
|
|
@@ -32,7 +32,7 @@ module EthonImpersonate
|
|
|
32
32
|
|
|
33
33
|
def clear; self[:fd_count] = 0; end
|
|
34
34
|
else
|
|
35
|
-
# https://github.com/
|
|
35
|
+
# https://github.com/typhoeus/ethon/issues/182
|
|
36
36
|
FD_SETSIZE = begin
|
|
37
37
|
# Allow to override the (new) default cap
|
|
38
38
|
if ENV['ETHON_FD_SIZE']
|
|
@@ -6,7 +6,7 @@ require "ffi/platform"
|
|
|
6
6
|
module EthonImpersonate
|
|
7
7
|
module Impersonate
|
|
8
8
|
module Settings
|
|
9
|
-
LIB_VERSION = "1.
|
|
9
|
+
LIB_VERSION = "1.1.0"
|
|
10
10
|
LIB_EXT_PATH = File.expand_path("../../ext/", File.dirname(__dir__))
|
|
11
11
|
|
|
12
12
|
LIB_DOWNLOAD_BASE_URL = "https://github.com/lexiforest/curl-impersonate/releases/download/v#{LIB_VERSION}/"
|
|
@@ -25,12 +25,13 @@ module EthonImpersonate
|
|
|
25
25
|
# "i686-windows" => "libcurl-impersonate-v#{LIB_VERSION}.i686-win32.tar.gz",
|
|
26
26
|
# "riscv64-linux" => "libcurl-impersonate-v#{LIB_VERSION}.riscv64-linux-gnu.tar.gz",
|
|
27
27
|
"x86_64-linux" => "libcurl-impersonate-v#{LIB_VERSION}.x86_64-linux-gnu.tar.gz",
|
|
28
|
-
|
|
28
|
+
"x86_64-darwin" => "libcurl-impersonate-v#{LIB_VERSION}.x86_64-macos.tar.gz",
|
|
29
29
|
# "x86_64-windows" => "libcurl-impersonate-v#{LIB_VERSION}.x86_64-win32.tar.gz",
|
|
30
30
|
}.freeze
|
|
31
31
|
|
|
32
32
|
GEM_PLATFORMS_MAP = {
|
|
33
33
|
"aarch64-darwin" => ["arm64-darwin-24", "arm64-darwin"],
|
|
34
|
+
"x86_64-darwin" => ["x86_64-darwin-24"],
|
|
34
35
|
"x86_64-windows" => ["x64-mingw32"],
|
|
35
36
|
}.freeze
|
|
36
37
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ethon-impersonate
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.17.
|
|
4
|
+
version: 0.17.10
|
|
5
5
|
platform: arm64-darwin
|
|
6
6
|
authors:
|
|
7
7
|
- David Sojevic
|
|
8
8
|
- Hans Hasselberg
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-07-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: ffi
|
|
@@ -98,7 +98,7 @@ files:
|
|
|
98
98
|
- lib/ethon_impersonate/multi/options.rb
|
|
99
99
|
- lib/ethon_impersonate/multi/stack.rb
|
|
100
100
|
- lib/ethon_impersonate/version.rb
|
|
101
|
-
homepage: https://github.com/
|
|
101
|
+
homepage: https://github.com/serpapi/ethon-impersonate
|
|
102
102
|
licenses:
|
|
103
103
|
- MIT
|
|
104
104
|
metadata: {}
|