专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Ruby教程 » Ruby学习笔记 2:使用Ruby实现通过Proxy的方式请求网页 »正文

Ruby学习笔记 2:使用Ruby实现通过Proxy的方式请求网页

来源: 发布时间:星期四, 2009年1月8日 浏览:2次 评论:0
  现在很多网站WebSite上某些活动都有限制同IP只能投规定,但是有时候迫于压迫,又不得不想办法多投几票,以前是采用Apache里HttpClient来实现这些功能,日前正在看Ruby,就用它也来玩下: require 'net/http'
##获得网页内容
def query_url(url)
Net::HTTP.get(URI.parse(url));
end
#抓取cnproxy上所有代理列表,并将结果保存到proxy.txt中去
#你可以修改这块代码或者其他代理服务器列表
def find_all_proxy
z="3";j="4";r="2";l="9";c="0";x="5";i="7";a="6";p="8";s="1"
pf = File.("proxy.txt","w+")
for page_no in 1..10
url = "http://www.cnproxy.com/proxy#{page_no}.html"
content = query_url(url)
#pr content
## ^$?./{}+*
for .gif' /> in content.scan(/<td>(.*?)<SCRIPT type=text/javascript>document.write(":"+(.*?))</SCRIPT></td>/)
.gif' />.length 2
pf.write("#{.gif' />[0]}:#{eval(.gif' />[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
pr "User Proxy #{var}n"
begin
proxy = Net::HTTP::Proxy(var.split(":")[0],var.split(":")[1].to_i)
pr proxy.get(URI.parse(url));
#pr proxy.start("www.google.com",80){|http|
# response = http.get('/index.html')
# puts response.body
#}
rescue
##吃掉异常
end
end
end
##主
begin
!FileTest.exist?( "proxy.txt" )
find_all_proxy
end
open_url_with_proxy('http://www.google.com/index.html');
end


  这里需要注意是代理服务器端口不能是String类型,Ruby竟然不会自动转换,搞得我浪费了N多时间.

标签:

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: