2013-07-05 27 views
7

Şu anda bilgisayarımda bir kazıma programı çalıştırıyorum. Bu büyük boyutta ve maalesef bu yüzden IP adresim kazımak zorunda olduğum siteden yasaklandı. Ruby'de, hatta basit bir şekilde, IP adresimi değiştirebilirim, böylece bu siteye kazımak için tekrar girebilirim, ya da şanstan kurtulurum ve başka bir yere başvurmak zorunda kalabilirim. çözümleri. Bu bir 403 Yasak Hatadır ve ne olursa olsun ben nokogiri kullanıyorum ve kullanıcı aracım ruby, teşekkürler.IP adresini rubire olarak değiştir

+2

IP adresiniz Ruby ile ilgili değil. Yönlendiricinizi/modeminizi yeniden başlatmanız genellikle yeni bir IP adresiyle sonuçlanır. [Tor] (https://www.torproject.org) da yardımcı olabilir. – Stefan

+0

Anlıyorum, ancak siteyi kazımayı denediğimde IP adresim nedeniyle 403 hatası alıyorum ve bunun IP adresimden kaynaklandığından eminim. Daha verimli bir yol var mıdır, görüyorum ki tarayıcılar için çalışacak ama IP'imi değiştirmek için daha verimli pragmatik bir yoldan sonra yönlendiricimi/modemi yeniden başlatıyorum, tercihan bir seçenekse yakutta. – user2109354

+2

Ruby sadece ağ arayüzünüzü kullanır, sadece genel IP'nizi değiştiremezsiniz. – Stefan

cevap

14

Bir proxy üzerinden bağlantı kurabilirsiniz ve bir proxy adresleri listeniz varsa, Ruby'yi proxy'yi her x dakikada bir değiştirmesini söyleyebilirsiniz; bu, web sitesinin sahip olduğunuzu düşündüğü IP'de bir değişikliğe neden olur. İşte bir proxy üzerinden google arama sonuçlarını kazımak için bir kod, bir proxy listesi kullanmak için kod biraz uzatmak.

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

Vay, gerçekten harika, çok teşekkürler, vidalandım diye düşünmeye başladım, bu mükemmel. – user2109354

+1

Bu yöntemi kullanmak için iyi proxy sunucuları için önerileriniz var mı? Vekalet hizmetleriyle ilgili deneyimim yok. –

+1

https://www.hidemyass.com/? – fartagaintuxedo

İlgili konular