Ruby学习笔记二 操纵Ruby实现通过Proxy的办法哀告网页[Java编程]
本文“Ruby学习笔记二 操纵Ruby实现通过Proxy的办法哀告网页[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
目前很多网站上某些活动都有限制同一IP只能投一票的规定,但是有时刻迫于 克制,又不得不想办法多投几票,从前是采取Apache里的HttpClient来实现这些功 能,日前正在看Ruby,就用它也来玩下:
require 'net/http'
##得到网页内容
def query_url(url)
return Net::HTTP.get(URI.parse(url));
end
#抓取cnproxy上全部的代理列表,并将后果保存到proxy.txt中去
#你可以改正这块代码大概其他的代理服务器列表
def find_all_proxy
z="3";j="4";r="2";l="9";c=&quo t;0";x="5";i="7";a="6";p="8&qu ot;;s="1"
pf = File.new("proxy.txt","w+")
for page_no in 1..10
url = "http://www.cnproxy.com/proxy#{page_no}.html"
content = query_url(url)
#print content
## ^$?./[]{}()+*
for array in content.scan(/<td>(.*?)<SCRIPT type=text/javascript>document.write(":"+(.*?)) </SCRIPT></td>/)
if array.length == 2
pf.write("#{array[0]}:#{eval(array[1])}n")
end
end
end
pf.close
end
##处理恳求
def open_url_with_proxy(url)
pf = File.open("proxy.txt","r")
d = []
pf.each { |line| d << line }
for var in d
print "User Proxy #{var}n"
begin
proxy = Net::HTTP::Proxy(var.split(":")[0],var.split (":")[1].to_i)
print proxy.get(URI.parse(url));
#print proxy.start("www.谷歌.com",80){|http|
# response = http.get('/index.html')
# puts response.body
#}
rescue
##吃掉非常
end
end
end
##主程序
begin
if !FileTest.exist?( "proxy.txt" )
find_all_proxy
end
open_url_with_proxy('http://www.谷歌.com/index.html');
end
这里需求注意的是代理服务器的端口不能是String范例,Ruby竟然不会自动转 换,搞得我浪费了N多时间.
以上是“Ruby学习笔记二 操纵Ruby实现通过Proxy的办法哀告网页[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |