proxy_fetcher 0.16.0 → 0.17.0
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/.github/workflows/ci.yml +3 -3
- data/CHANGELOG.md +9 -0
- data/lib/proxy_fetcher/version.rb +1 -1
- data/lib/proxy_fetcher.rb +0 -3
- data/spec/proxy_fetcher/providers/proxy_classes_spec.rb +0 -3
- metadata +3 -6
- data/lib/proxy_fetcher/providers/proxyscrape_http.rb +0 -65
- data/lib/proxy_fetcher/providers/proxyscrape_socks4.rb +0 -65
- data/lib/proxy_fetcher/providers/proxyscrape_socks5.rb +0 -65
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a35a9ffcd025603a3fe87c281a3d9d19fc68a7c88ae75adb6f9ef63b8b55c121
|
4
|
+
data.tar.gz: 2a9657da7a409c3ae13e5425da5623e351a04a75495546613473698004efe2a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b74bd11f91f0ef06bd754d048fd28705859f6c30b1f4a126a0dfbaa4b697d099efd4c26d4f6a98cbc3c47367baef3a3b5a0a80e099bc3fa5f1bfc3108b51def
|
7
|
+
data.tar.gz: 7b37eddbe892c7ce0f7343d231a18166213a4c9dd2bdd3dbe3720fe1f1c799474a7c2a312adc56134e587d58aebe34bb2b0dad2da51a21a355e846759c1e084b
|
data/.github/workflows/ci.yml
CHANGED
@@ -32,9 +32,9 @@ jobs:
|
|
32
32
|
gemfile: gemfiles/nokogiri.gemfile
|
33
33
|
experimental: true
|
34
34
|
- ruby: head
|
35
|
-
|
36
|
-
|
37
|
-
|
35
|
+
os: ubuntu-latest
|
36
|
+
gemfile: gemfiles/oga.gemfile
|
37
|
+
experimental: true
|
38
38
|
- ruby: jruby
|
39
39
|
os: ubuntu-latest
|
40
40
|
gemfile: gemfiles/nokogiri.gemfile
|
data/CHANGELOG.md
CHANGED
data/lib/proxy_fetcher.rb
CHANGED
@@ -41,9 +41,6 @@ module ProxyFetcher
|
|
41
41
|
require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/mtpro"
|
42
42
|
require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/proxy_list"
|
43
43
|
require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/proxypedia"
|
44
|
-
require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/proxyscrape_http"
|
45
|
-
require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/proxyscrape_socks4"
|
46
|
-
require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/proxyscrape_socks5"
|
47
44
|
require "#{File.dirname(__FILE__)}/proxy_fetcher/providers/xroxy"
|
48
45
|
end
|
49
46
|
|
@@ -12,9 +12,6 @@ describe "Proxy classes" do
|
|
12
12
|
[:mtpro, "MTPro"],
|
13
13
|
[:proxy_list, "ProxyList"],
|
14
14
|
[:proxypedia, "Proxypedia"],
|
15
|
-
[:proxyscrape_http, "ProxyscrapeHTTP"],
|
16
|
-
[:proxyscrape_socks4, "ProxyscrapeSOCKS4"],
|
17
|
-
[:proxyscrape_socks5, "ProxyscrapeSOCKS5"],
|
18
15
|
[:xroxy, "XRoxy"]
|
19
16
|
].each do |(provider_name, provider_klass)|
|
20
17
|
describe Object.const_get("ProxyFetcher::Providers::#{provider_klass}") do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: proxy_fetcher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nikita Bulai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -97,9 +97,6 @@ files:
|
|
97
97
|
- lib/proxy_fetcher/providers/mtpro.rb
|
98
98
|
- lib/proxy_fetcher/providers/proxy_list.rb
|
99
99
|
- lib/proxy_fetcher/providers/proxypedia.rb
|
100
|
-
- lib/proxy_fetcher/providers/proxyscrape_http.rb
|
101
|
-
- lib/proxy_fetcher/providers/proxyscrape_socks4.rb
|
102
|
-
- lib/proxy_fetcher/providers/proxyscrape_socks5.rb
|
103
100
|
- lib/proxy_fetcher/providers/xroxy.rb
|
104
101
|
- lib/proxy_fetcher/proxy.rb
|
105
102
|
- lib/proxy_fetcher/utils/http_client.rb
|
@@ -139,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
136
|
- !ruby/object:Gem::Version
|
140
137
|
version: '0'
|
141
138
|
requirements: []
|
142
|
-
rubygems_version: 3.
|
139
|
+
rubygems_version: 3.1.6
|
143
140
|
signing_key:
|
144
141
|
specification_version: 4
|
145
142
|
summary: Ruby gem for dealing with proxy lists from different providers
|
@@ -1,65 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "csv"
|
4
|
-
|
5
|
-
module ProxyFetcher
|
6
|
-
module Providers
|
7
|
-
# FreeProxyList provider class.
|
8
|
-
class ProxyscrapeHTTP < Base
|
9
|
-
# Provider URL to fetch proxy list
|
10
|
-
def provider_url
|
11
|
-
"https://api.proxyscrape.com/v2/?request=getproxies&protocol=http"
|
12
|
-
end
|
13
|
-
|
14
|
-
# Loads provider HTML and parses it with internal document object.
|
15
|
-
#
|
16
|
-
# @param url [String]
|
17
|
-
# URL to fetch
|
18
|
-
#
|
19
|
-
# @param filters [Hash]
|
20
|
-
# filters for proxy provider
|
21
|
-
#
|
22
|
-
# @return [Array]
|
23
|
-
# Collection of extracted proxies with ports
|
24
|
-
#
|
25
|
-
def load_document(url, filters = {})
|
26
|
-
html = load_html(url, filters)
|
27
|
-
|
28
|
-
CSV.parse(html, col_sep: "\t").map(&:first)
|
29
|
-
end
|
30
|
-
|
31
|
-
# Fetches HTML content by sending HTTP request to the provider URL and
|
32
|
-
# parses the txt document to return all the proxy entries (ip addresses
|
33
|
-
# and ports).
|
34
|
-
#
|
35
|
-
# @return [Array]
|
36
|
-
# Collection of extracted proxies with ports
|
37
|
-
#
|
38
|
-
def load_proxy_list(filters = {})
|
39
|
-
load_document(provider_url, filters)
|
40
|
-
end
|
41
|
-
|
42
|
-
# Converts String to <code>ProxyFetcher::Proxy</code> object.
|
43
|
-
#
|
44
|
-
# @param node [String]
|
45
|
-
# String
|
46
|
-
#
|
47
|
-
# @return [ProxyFetcher::Proxy]
|
48
|
-
# Proxy object
|
49
|
-
#
|
50
|
-
def to_proxy(node)
|
51
|
-
addr, port = node.split(":")
|
52
|
-
|
53
|
-
ProxyFetcher::Proxy.new.tap do |proxy|
|
54
|
-
proxy.addr = addr
|
55
|
-
proxy.port = Integer(port)
|
56
|
-
proxy.country = "Unknown"
|
57
|
-
proxy.anonymity = "Unknown"
|
58
|
-
proxy.type = ProxyFetcher::Proxy::HTTP
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
ProxyFetcher::Configuration.register_provider(:proxyscrape_http, ProxyscrapeHTTP)
|
64
|
-
end
|
65
|
-
end
|
@@ -1,65 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "csv"
|
4
|
-
|
5
|
-
module ProxyFetcher
|
6
|
-
module Providers
|
7
|
-
# FreeProxyList provider class.
|
8
|
-
class ProxyscrapeSOCKS4 < Base
|
9
|
-
# Provider URL to fetch proxy list
|
10
|
-
def provider_url
|
11
|
-
"https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks4"
|
12
|
-
end
|
13
|
-
|
14
|
-
# Loads provider HTML and parses it with internal document object.
|
15
|
-
#
|
16
|
-
# @param url [String]
|
17
|
-
# URL to fetch
|
18
|
-
#
|
19
|
-
# @param filters [Hash]
|
20
|
-
# filters for proxy provider
|
21
|
-
#
|
22
|
-
# @return [Array]
|
23
|
-
# Collection of extracted proxies with ports
|
24
|
-
#
|
25
|
-
def load_document(url, filters = {})
|
26
|
-
html = load_html(url, filters)
|
27
|
-
|
28
|
-
CSV.parse(html, col_sep: "\t").map(&:first)
|
29
|
-
end
|
30
|
-
|
31
|
-
# Fetches HTML content by sending HTTP request to the provider URL and
|
32
|
-
# parses the txt document to return all the proxy entries (ip addresses
|
33
|
-
# and ports).
|
34
|
-
#
|
35
|
-
# @return [Array]
|
36
|
-
# Collection of extracted proxies with ports
|
37
|
-
#
|
38
|
-
def load_proxy_list(filters = {})
|
39
|
-
load_document(provider_url, filters)
|
40
|
-
end
|
41
|
-
|
42
|
-
# Converts String to <code>ProxyFetcher::Proxy</code> object.
|
43
|
-
#
|
44
|
-
# @param node [String]
|
45
|
-
# String
|
46
|
-
#
|
47
|
-
# @return [ProxyFetcher::Proxy]
|
48
|
-
# Proxy object
|
49
|
-
#
|
50
|
-
def to_proxy(html_node)
|
51
|
-
addr, port = html_node.split(":")
|
52
|
-
|
53
|
-
ProxyFetcher::Proxy.new.tap do |proxy|
|
54
|
-
proxy.addr = addr
|
55
|
-
proxy.port = Integer(port)
|
56
|
-
proxy.country = "Unknown"
|
57
|
-
proxy.anonymity = "Unknown"
|
58
|
-
proxy.type = ProxyFetcher::Proxy::SOCKS4
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
ProxyFetcher::Configuration.register_provider(:proxyscrape_socks4, ProxyscrapeSOCKS4)
|
64
|
-
end
|
65
|
-
end
|
@@ -1,65 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "csv"
|
4
|
-
|
5
|
-
module ProxyFetcher
|
6
|
-
module Providers
|
7
|
-
# FreeProxyList provider class.
|
8
|
-
class ProxyscrapeSOCKS5 < Base
|
9
|
-
# Provider URL to fetch proxy list
|
10
|
-
def provider_url
|
11
|
-
"https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks5"
|
12
|
-
end
|
13
|
-
|
14
|
-
# Loads provider HTML and parses it with internal document object.
|
15
|
-
#
|
16
|
-
# @param url [String]
|
17
|
-
# URL to fetch
|
18
|
-
#
|
19
|
-
# @param filters [Hash]
|
20
|
-
# filters for proxy provider
|
21
|
-
#
|
22
|
-
# @return [Array]
|
23
|
-
# Collection of extracted proxies with ports
|
24
|
-
#
|
25
|
-
def load_document(url, filters = {})
|
26
|
-
html = load_html(url, filters)
|
27
|
-
|
28
|
-
CSV.parse(html, col_sep: "\t").map(&:first)
|
29
|
-
end
|
30
|
-
|
31
|
-
# Fetches HTML content by sending HTTP request to the provider URL and
|
32
|
-
# parses the txt document to return all the proxy entries (ip addresses
|
33
|
-
# and ports).
|
34
|
-
#
|
35
|
-
# @return [Array]
|
36
|
-
# Collection of extracted proxies with ports
|
37
|
-
#
|
38
|
-
def load_proxy_list(filters = {})
|
39
|
-
load_document(provider_url, filters)
|
40
|
-
end
|
41
|
-
|
42
|
-
# Converts String to <code>ProxyFetcher::Proxy</code> object.
|
43
|
-
#
|
44
|
-
# @param node [String]
|
45
|
-
# String
|
46
|
-
#
|
47
|
-
# @return [ProxyFetcher::Proxy]
|
48
|
-
# Proxy object
|
49
|
-
#
|
50
|
-
def to_proxy(html_node)
|
51
|
-
addr, port = html_node.split(":")
|
52
|
-
|
53
|
-
ProxyFetcher::Proxy.new.tap do |proxy|
|
54
|
-
proxy.addr = addr
|
55
|
-
proxy.port = Integer(port)
|
56
|
-
proxy.country = "Unknown"
|
57
|
-
proxy.anonymity = "Unknown"
|
58
|
-
proxy.type = ProxyFetcher::Proxy::SOCKS5
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
ProxyFetcher::Configuration.register_provider(:proxyscrape_socks5, ProxyscrapeSOCKS5)
|
64
|
-
end
|
65
|
-
end
|