首页 »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多时间.
标签:
相关文章
读者评论
发表评论
|
|