更改ruby中的IP地址

时间:2013-07-05 13:05:01

标签: ruby web-scraping screen-scraping

现在我正在我的电脑上运行一个抓取程序。它的体积很大,不幸的是,由于这个原因,我的IP地址被禁止进入我需要抓取的网站。有没有办法在Ruby中,或者甚至只是以简单的方式,我可以切换我的IP地址,以便我可以被允许回到这个网站进行抓取,或者我运气不好,我可能不得不诉诸其他解决方案。这是一个403 Forbidden Error,无论它的价值是什么,我都在使用nokogiri而且我的用户代理是ruby,谢谢。

1 个答案:

答案 0 :(得分:14)

您可以通过代理连接,如果您有代理地址列表,那么您可以告诉ruby每x分钟更改一次代理,这将导致网站认为您拥有的IP更改。这是通过代理刮取谷歌搜索结果的代码,使用代理列表只是稍微扩展代码。

require 'rubygems'
require 'mechanize'

agent = Mechanize.new
agent.set_proxy '78.186.178.153', 8080
page = agent.get('http://www.google.com/')

google_form = page.form('f')
google_form.q = 'new york city council'

page = agent.submit(google_form, google_form.buttons.first)

page.links.each do |link|
    if link.href.to_s =~/url.q/
        str=link.href.to_s
        strList=str.split(%r{=|&}) 
        url=strList[1] 
        puts url
    end 
end