現在我正在計算機上運行一個抓取程序。它的規模很大,不幸的是因爲這個原因,我的IP地址被禁止從我需要的網站上刮取。有沒有一種方式,在Ruby中,或者甚至只是以一種簡單的方式,我可以切換我的IP地址,以便我可以被允許回到本站進行刮擦,或者我運氣不好,而且我可能不得不訴諸其他解決方案。這是一個403禁止錯誤,無論我使用nokogiri的值是多少,我的用戶代理都是紅寶石,謝謝。在ruby中更改IP地址
7
A
回答
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
+0
哇,真的很棒,非常感謝,我開始覺得我被搞砸了,這是完美的。 – user2109354
+1
對於使用此方法的優質代理服務器,您有什麼建議嗎?我沒有使用代理服務的經驗。 –
+1
請嘗試https://www.hidemyass.com/? – fartagaintuxedo
相關問題
- 1. 在PowerShell中更改IP地址
- 2. 在VB.Net中更改IP地址
- 3. 在C#中更改IP地址
- 4. 如何在C++中更改IP地址?
- 5. 更改IP地址格式
- 6. 更改程序IP地址
- 7. ip地址更改通知
- 8. 更改EC2實例的公共IP地址彈性IP地址
- 9. 在Ruby 1.8中排序IP地址
- 10. 更改Team Foundation Server 2013的IP地址
- 11. 如何更改eve的IP地址?
- 12. Devstack - 安裝後更改IP地址
- 13. 私人IP地址可以更改嗎?
- 14. 使用腳本更改solaris IP地址
- 15. 更改Windows Azure雲服務IP地址
- 16. 如何檢測IP地址更改?
- 17. 如何更改UdpClient IP地址?
- 18. 更改域的IP地址A記錄
- 19. 更改OpenShift Origin VM的IP地址
- 20. devstack安裝後更改ip地址
- 21. 如何更改phpmyadmin MySQL的IP地址?
- 22. wpf - 如何更改IP地址?
- 23. Python使用WMI更改IP地址
- 24. IP更改,同時ping IPV6地址
- 25. 腳本更改IP地址格式,
- 26. 動態更改源IP地址
- 27. CDH 5.1主機IP地址更改
- 28. 更改Eclipse的服務器IP地址
- 29. 更改容器分配的IP地址
- 30. 更改IP地址泊塢窗
您的IP地址與Ruby無關。重新啓動路由器/調制解調器通常會產生新的IP地址。 [Tor](https://www.torproject.org)也可以提供幫助。 – Stefan
我明白了,但每當我嘗試颳去該網站時,由於我的IP地址而出現403錯誤,而且我確信這是由於我的IP地址。有沒有更高效的方式,我發現tore可以用於瀏覽器目的,但我需要一個更有效的實用方法來更改我的IP,然後重新啓動我的路由器/調制解調器,如果這是一個選項,最好使用ruby。 – user2109354
Ruby只是使用你的網絡接口,你不能簡單地改變你的公共IP。 – Stefan