J'ai un programme que j'utilise à des fins de test que je suis en train de gratter le web pour les proxies ouverts, et l'enregistrement des informations d'entre eux, mais c'est un type très différent de scraper proxy, car il crée un tas de procurations au hasard avant à l'intérieur d'un fichier avant d'exécuter par exemple:Open-URI throw thru error => (URI :: InvalidURIError)
def create_possibles
puts "Creating random possible proxies..".green.bold
1.times do
port = rand(2000..8080)
1.times do
ip = Array.new(4){rand(256)}.join('.')
possible_proxy = "#{ip}:#{port}"
File.open("possible_proxies.txt", "a") {|s| s.puts(possible_proxy)}
end
end
end
#<= 189.96.49.87:7990
ce que je veux faire avec cette « proxy possible » est ouvert et voir si cela fonctionne, cependant quand j'utilise le code suivant, il jette juste cette erreur:
def check_possibles
IO.read("possible_proxies.txt").each_line do |proxy|
puts open('http://google.com', :proxy => "http://#{proxy}")
end
end
J'ai deux questions:
- Est-ce que cela signifie que le proxy est invalide, et si oui, y at-il un moyen d'ignorer la ligne dans le fichier? Peut-être en utilisant un
next
ouskip
? - Si cela ne veut pas dire que le proxy est invalide, alors qu'est-ce que cela signifie, est-ce que je fais quelque chose de mal dans mon code à l'endroit où il lit l'URL mal?
erreur complète:
C:/Ruby22/lib/ruby/2.2.0/uri/rfc3986_parser.rb:66:in `split': bad URI(is not URI
?): http://189.96.49.87:7990 (URI::InvalidURIError)
EDIT:
On m'a dit d'essayer URI.parse
et je reçois la même erreur:
C:/Ruby22/lib/ruby/2.2.0/uri/rfc3986_parser.rb:66:in `split': bad URI(is not URI
?): http://195.239.61.210:4365 (URI::InvalidURIError) #<= Different IP
Je suis complètement déconcerté, 'http: //189.96.49.87: 7990' est un URI parfaitement valide. Que se passe-t-il lorsque vous essayez 'URI.parse (" http: // # {proxy} ")'? – Shelvacu
@shelvacu Je ne sais pas laissez-moi savoir très vite – 13aal
@shelvacu Je l'ai essayé avec une autre IP C: /Ruby22/lib/ruby/2.2.0/uri/rfc3986_parser.rb: 66: dans 'split ': mauvais URI (n'est pas URI ?): http://195.239.61.210:4365 (URI :: InvalidURIError) – 13aal