2016-06-21 3 views
0

したがって、ローカルマシン上で完全に実行されているノコギリのウェブスクレイプがあります。レールURLのリンクを使用したプロキシを使用

しかし、実稼働環境でWebスクレイプを実行しようとすると、403エラーコードが表示されます。

私はこれが私のサーバーの私のIPをブロックするWebサイトにダウンしていると信じて

ルートにプロキシサーバーを介して自分のWebサーバーから鋸山の要求も可能です(おそらく、そのIPを使用して、以前の人々はそれをブロックしているため) ?もしそうなら、私はそれについてどうやって行くのですか?

これは現時点でのコードです。

doc = Nokogiri::HTML(open(URL HERE, 'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.854.0 Safari/535.2')) 
+0

ここから403を取得していますか?あなたが掻き取ろうとしているウェブサイトから? – thesecretmaster

+0

実際、私はサーバーのIPアドレスをブロックしているという印象を受けています。なぜ、私はプロキシを考えたのですか? –

+0

Mechaniseとプロキシを使用できますか?見て[ここ](http://stackoverflow.com/questions/18348673/how-do-i-configure-a-ruby-mechanize-agent-to-work-through-the-charles-web-proxy)または[ここに](https://gist.github.com/emergent/3983870) –

答えて

0

実は、あなたは単にOpenURI open方法の:proxyパラメータを使用することができます。

open(*rest, &block) 
#open provides `open' for URI::HTTP and URI::FTP. 

... 

The hash may include other options, where keys are symbols: 
:proxy 

Synopsis:  
:proxy => "http://proxy.foo.com:8000/" 
:proxy => URI.parse("http://proxy.foo.com:8000/") 

If :proxy option is specified, the value should be String, URI, boolean or nil. 

また、(今退屈である)一般対価として、あなたはそれを定期的に行うの場合は特に、コンテンツを廃棄周りの選択肢を検索する必要があります。サポートされているAPIや代替ソースのようなもの現在のサーバーIPがブロックされている場合、プロキシにも同様のことが起こります。

+0

良いプロキシのアイデアはありますか? –

+1

おそらくあなたは良い_and_フリープロキシを得ることはありません。フリープロキシは無作為に動作し、ときどき動作を停止します。あなたはそれらと一緒に仕事をすることができますが、信頼できるものには向きません。信頼性の高いプロキシの場合は、有料サービスを検索する必要があります。多くのサービスがあり、どちらが良いか悪いと判断できません。 –

+1

また、一般的な考慮事項(現在は面倒です)として、特に定期的に行われている場合は、コンテンツの廃棄に関する代替案を検索する必要があります。サポートされているAPIや代替ソースのようなものあなたの現在のサーバIPがブロックされている場合、プロキシにも同じことが起こります。 –

関連する問題