Sha256: b1dd050a21120a2b2a362569276977388e646ee396b6156367c09e01c6909ca1
Contents?: true
Size: 1.97 KB
Versions: 2
Compression:
Stored size: 1.97 KB
Contents
module ProxiesScanner class Proxies ALL_AREAS = [ 'us', 'fr', 'gb', 'au', 'ca', 'it', 'es', 'hu', 'ng', 'ch', 'se', 'br', 'id', 'cn', 'fi', 'be', 'co', 'hr', 'ge', 'gr', 'ie', 'mx', 'mt', 'nl', 'pa', 'ph', 'ro', 'sc', 'tw', 'tn', 'tr', 'ua', 've' ] def self.find_by_area(area, page=0) $logger.info "Proxies.extract area=#{area}, page=#{page}" proxies = [] doc = Nokogiri::HTML(open("http://www.proxylists.net/#{area.downcase}_#{page}.html")) table = doc.search('table')[1] table.css('tr').each do |tr| td1 = tr.css('td')[0] td2 = tr.css('td')[1] unless td1.nil? # extract host js = td1.text.scan(/cape\('(.*)'\)\);/)[0] unless js.nil? js1 = js[0] js2 = URI.decode(js1) # self.document.writeln(\"81.199.34.100\"); $logger.debug "Proxies.extract js2: #{js2}" ip = js2.to_s.scan(/ln\("(.*)"\);/)[0][0].to_s $logger.debug "Proxies.extract ip: #{ip}" end # extract port unless td2.nil? port = td2.text.strip.to_s.to_i || 8080 end proxies << Proxy.new(ip, port, area) unless ip.nil? end end return proxies end def self.from_file(filename) proxies = [] file = nil begin file = File.open(filename, 'r+') file.each_line do |line| next if line[0] == '#' s_ip = line.split(':')[0] s_port = line.split(':')[1] s_area = line.split(':')[2] || '--' $logger.debug "From file extract s_ip: #{s_ip}" $logger.debug "From file extract s_port: #{s_port}" $logger.debug "From file extract s_area: #{s_area}" proxies << Proxy.new(s_ip.strip, s_port.strip.to_i, s_area.strip) end rescue Exception => e $logger.error "From file error: #{e.message}" end file.close unless file.nil? return proxies end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
proxies-scanner-0.0.2 | lib/proxies-scanner/proxies.rb |
proxies-scanner-0.0.1 | lib/proxies-scanner/proxies.rb |