29 lines
721 B
Ruby
29 lines
721 B
Ruby
# typed: strict
|
|
# frozen_string_literal: true
|
|
|
|
class Scraper::TorCurlHttpPerformer < Scraper::CurlHttpPerformer
|
|
extend T::Sig
|
|
|
|
sig { override.returns(String) }
|
|
def performed_by
|
|
"tor-1"
|
|
end
|
|
|
|
sig { override.returns(Curl::Easy) }
|
|
def get_curl
|
|
t = Thread.current
|
|
unless t.thread_variable?(:curl)
|
|
t.thread_variable_set(:curl, Curl::Easy.new)
|
|
end
|
|
curl = T.cast(t.thread_variable_get(:curl), Curl::Easy)
|
|
curl.proxy_url = "socks5h://tor:9050"
|
|
curl.headers = {
|
|
"User-Agent" =>
|
|
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:128.0) Gecko/20100101 Firefox/128.0",
|
|
"Accept-Encoding" => "gzip, deflate",
|
|
"Connection" => "keep-alive",
|
|
}
|
|
curl
|
|
end
|
|
end
|