Skip to content

Instantly share code, notes, and snippets.

@maximusfox
Last active May 12, 2020 19:48
Show Gist options
  • Select an option

  • Save maximusfox/9929dff481b70465f770 to your computer and use it in GitHub Desktop.

Select an option

Save maximusfox/9929dff481b70465f770 to your computer and use it in GitHub Desktop.
Simple proxy parser
#!/usr/bin/env ruby
require 'httpclient'
class ProxyList
attr :url, :proxyList, :firstDownload
def initialize(url)
if url.nil?
return nil
end
@url = url
@proxyList = []
@firstDownload = true
end
def getURL
return @url
end
def getProxy
if (@proxyList.nil? or @proxyList.empty?) and @firstDownload == true
updateProxyList
@firstDownload = false
end
return @proxyList
end
def updateProxyList
pageData = HTTPClient.new.get(@url, :follow_redirect => true).body
if pageData.nil?
@proxyList = []
return nil
end
pageData.gsub(/[\s\t]+/, '')
@proxyList = pageData.scan(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}/)
end
end
if __FILE__ == $0
urls = DATA.each_line.map(&:chomp)
puts "[i] Loaded urls: #{urls.size}"
fullProxyList = []
urls.each do |url|
tmpProxyList = ProxyList.new(url).getProxy
puts "[i] Address: #{url} Count: #{tmpProxyList.size}"
fullProxyList += tmpProxyList
end
fullProxyList.uniq
puts "[i] Total proxy saved: #{fullProxyList.size}"
IO.write('proxy.txt', fullProxyList.join("\n"))
end
__END__
http://webanetlabs.net/publ/24-0
http://webanetlabs.net/publ/24-1
http://webanetlabs.net/publ/24-2
http://webanetlabs.net/publ/24-3
http://webanetlabs.net/publ/24-4
http://webanetlabs.net/publ/24-5
http://webanetlabs.net/publ/24-6
http://webanetlabs.net/publ/24-7
http://webanetlabs.net/publ/24-8
http://webanetlabs.net/publ/24-9
http://webanetlabs.net/publ/24-10
http://www.prime-speed.ru/proxy/free-proxy-list/all-working-proxies.php
http://www.prime-speed.ru/proxy/free-proxy-list/anon-elite-proxy.php
http://www.prime-speed.ru/proxy/free-proxy-list/Argentina-proxy.php
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment