目前我正在电脑上运行一个网络爬虫程序。它占用的空间很大,不幸的是,由于这个原因,我的IP地址已经被该网站禁止访问。在Ruby中,或者简单地说,在任何一个简单的方式中,是否有一种方法可以更换我的IP地址,以便我可以重新进入这个网站进行爬取,或者我必须使用其他解决方案。这是403 Forbidden错误,值得一提的是,我正在使用nokogiri和ruby作为用户代理,谢谢。
目前我正在电脑上运行一个网络爬虫程序。它占用的空间很大,不幸的是,由于这个原因,我的IP地址已经被该网站禁止访问。在Ruby中,或者简单地说,在任何一个简单的方式中,是否有一种方法可以更换我的IP地址,以便我可以重新进入这个网站进行爬取,或者我必须使用其他解决方案。这是403 Forbidden错误,值得一提的是,我正在使用nokogiri和ruby作为用户代理,谢谢。
你可以通过代理连接,如果你有一份代理地址列表,那么你可以告诉 Ruby 每 x 分钟更改一次代理,这将导致网站认为你的 IP 发生了变化。下面是一个使用代理来爬取 Google 搜索结果的代码示例,如果想要使用代理列表,只需要稍微修改一下代码即可。
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