Module: HttpMimic
- Extended by:
- ModuleMethods
- Defined in:
- lib/http_mimic.rb,
lib/http_mimic/waf.rb,
lib/http_mimic/client.rb,
lib/http_mimic/cookies.rb,
lib/http_mimic/headers.rb,
lib/http_mimic/request.rb,
lib/http_mimic/version.rb,
lib/http_mimic/response.rb,
lib/http_mimic/downloader.rb,
lib/http_mimic/exceptions.rb,
lib/http_mimic/js_runtime.rb,
lib/http_mimic/cookie_store.rb,
lib/http_mimic/waf/detector.rb,
lib/http_mimic/configuration.rb,
lib/http_mimic/module_methods.rb,
lib/http_mimic/command_builder.rb,
lib/http_mimic/response_parser.rb,
lib/http_mimic/waf/akamai_solver.rb
Defined Under Namespace
Modules: InstanceMethods, ModuleMethods, Waf Classes: BinaryNotFoundError, Client, CommandBuilder, CommandError, Configuration, ConnectionError, CookieStore, Cookies, Downloader, Error, Headers, JSError, JSRuntime, JSTimeoutError, Request, Response, ResponseParseError, ResponseParser, SSLError, TimeoutError
Constant Summary collapse
- VERSION =
"0.4.0"
Class Method Summary collapse
- .clear_cookies!(host = nil) ⇒ Object
- .configuration ⇒ Object
- .configure {|configuration| ... } ⇒ Object
-
.detect_waf(response) ⇒ Object
Automatically detect WAF type from response.
-
.download_driver!(version: nil, force: false) ⇒ Object
Manually download and install curl-impersonate binary driver.
-
.download_qjs!(version: nil, force: false) ⇒ Object
Manually download and install QuickJS binary driver.
-
.driver_installed?(version: nil) ⇒ Boolean
Check if curl-impersonate driver is installed locally.
-
.eval_js(code, options = {}) ⇒ Object
Evaluate JavaScript code using QuickJS.
-
.eval_js_json(code, options = {}) ⇒ Object
Evaluate JavaScript and auto-parse JSON result.
- .included(base) ⇒ Object
-
.load_cookies(host, max_age: nil) ⇒ Object
Persistent Host CookieStore helpers.
-
.qjs_installed?(version: nil) ⇒ Boolean
Check if QuickJS driver is installed locally.
-
.qjs_path ⇒ Object
Return local path to QuickJS binary.
- .reset_configuration! ⇒ Object
- .save_cookies(host, cookies, ttl: nil) ⇒ Object
-
.solve_waf(url, response, options = {}) ⇒ Object
Attempt to solve WAF challenge for a blocked response.
Methods included from ModuleMethods
auto_fallback, base_uri, cookies, default_options, default_params, default_timeout, delete, get, head, headers, impersonate, mode, options, patch, persist_cookies, post, proxy, put, request, retry_statuses
Class Method Details
.clear_cookies!(host = nil) ⇒ Object
93 94 95 |
# File 'lib/http_mimic.rb', line 93 def (host = nil) CookieStore.clear(host) end |
.configuration ⇒ Object
27 28 29 |
# File 'lib/http_mimic.rb', line 27 def configuration @configuration ||= Configuration.new end |
.configure {|configuration| ... } ⇒ Object
31 32 33 |
# File 'lib/http_mimic.rb', line 31 def configure yield(configuration) if block_given? end |
.detect_waf(response) ⇒ Object
Automatically detect WAF type from response
75 76 77 |
# File 'lib/http_mimic.rb', line 75 def detect_waf(response) Waf::Detector.detect(response) end |
.download_driver!(version: nil, force: false) ⇒ Object
Manually download and install curl-impersonate binary driver
40 41 42 |
# File 'lib/http_mimic.rb', line 40 def download_driver!(version: nil, force: false) Downloader.download!(version: version, force: force) end |
.download_qjs!(version: nil, force: false) ⇒ Object
Manually download and install QuickJS binary driver
50 51 52 |
# File 'lib/http_mimic.rb', line 50 def download_qjs!(version: nil, force: false) Downloader.download_qjs!(version: version, force: force) end |
.driver_installed?(version: nil) ⇒ Boolean
Check if curl-impersonate driver is installed locally
45 46 47 |
# File 'lib/http_mimic.rb', line 45 def driver_installed?(version: nil) Downloader.installed?(version: version) end |
.eval_js(code, options = {}) ⇒ Object
Evaluate JavaScript code using QuickJS
65 66 67 |
# File 'lib/http_mimic.rb', line 65 def eval_js(code, = {}) JSRuntime.eval(code, timeout: [:timeout], install_dir: [:install_dir], auto_download: [:auto_download]) end |
.eval_js_json(code, options = {}) ⇒ Object
Evaluate JavaScript and auto-parse JSON result
70 71 72 |
# File 'lib/http_mimic.rb', line 70 def eval_js_json(code, = {}) JSRuntime.eval_json(code, timeout: [:timeout], install_dir: [:install_dir], auto_download: [:auto_download]) end |
.included(base) ⇒ Object
97 98 99 100 |
# File 'lib/http_mimic.rb', line 97 def included(base) base.extend(ModuleMethods) base.send(:include, InstanceMethods) end |
.load_cookies(host, max_age: nil) ⇒ Object
Persistent Host CookieStore helpers
85 86 87 |
# File 'lib/http_mimic.rb', line 85 def (host, max_age: nil) CookieStore.load(host, max_age: max_age) end |
.qjs_installed?(version: nil) ⇒ Boolean
Check if QuickJS driver is installed locally
55 56 57 |
# File 'lib/http_mimic.rb', line 55 def qjs_installed?(version: nil) Downloader.qjs_installed?(version: version) end |
.qjs_path ⇒ Object
Return local path to QuickJS binary
60 61 62 |
# File 'lib/http_mimic.rb', line 60 def qjs_path Downloader.qjs_path end |
.reset_configuration! ⇒ Object
35 36 37 |
# File 'lib/http_mimic.rb', line 35 def reset_configuration! @configuration = Configuration.new end |
.save_cookies(host, cookies, ttl: nil) ⇒ Object
89 90 91 |
# File 'lib/http_mimic.rb', line 89 def (host, , ttl: nil) CookieStore.save(host, , ttl: ttl || CookieStore::DEFAULT_TTL) end |