2013-07-05 23 views
7

今は自分のコンピュータでスクレイピングプログラムを実行しています。これはサイズが大きいので、残念なことに、私のIPアドレスは私が掻きする必要があるサイトから禁止されています。 Rubyでは、単純なやり方でも、私は自分のIPアドレスを切り替えることができるので、私はこのサイトにスクレイピングするために戻ってくることができますか、私は運が悪いですか?ソリューション。それは403 Forbidden Errorであり、その価値が何であれ、nokogiriを使用しており、私のユーザエージェントはルビーです。ありがとうございます。ルビーのIPアドレスを変更する

+2

あなたのIPアドレスはRubyとは関係ありません。ルーター/モデムを再起動すると、通常は新しいIPアドレスになります。 [Tor](https://www.torproject.org)も役に立ちます。 – Stefan

+0

私は理解していますが、サイトをスクラップしようとすると、私のIPアドレスのために403エラーが発生し、それが自分のIPアドレスに起因すると確信しています。より効率的な方法はありますか?私はブラウザの目的でtoreが動作することを知っていますが、IPを変更してルーター/モデムを再起動するより効率的な方法が必要です。 – user2109354

+2

Rubyはあなたのネットワークインターフェースを使用しているだけで、公開IPを変更することはできません。 – Stefan

答えて

14

プロキシ経由で接続できます。プロキシアドレスのリストがある場合は、ルビにプロキシをx分ごとに変更するように伝えることができます。これにより、Webサイトの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 
+0

うわー、本当にすばらしい、ありがとう、私は私がうんざりしていると思うようになっていた、これは完璧です。 – user2109354

+1

良いプロキシサーバーがこの方法を使用するための推奨事項はありますか?プロキシサービスに関する経験はありません。 –

+1

https://www.hidemyass.com/をお試しください。 – fartagaintuxedo

関連する問題