Используя прокси с URL-адресом rails

Таким образом, у меня есть веб-скребок nokogiri, отлично работающий на моей локальной машине.

Однако, когда я пытаюсь запустить веб-очистку в своей производственной среде, появляется код ошибки 403.

Я полагаю, что это связано с тем, что сайт блокирует мой ip моего сервера (возможно, потому что предыдущие люди, использующие этот ip, заблокировали его)

Можно ли перенаправить запрос nokogiri с моего веб-сервера через прокси-сервер? Если так, как бы я пошел по этому поводу?

Это код, который у меня есть на данный момент.

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'))

1 ответ

Решение

На самом деле, вы можете просто использовать :proxy Параметр OpenURI open метод.

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-адрес сервера заблокирован, то же самое может произойти и с прокси.

Другие вопросы по тегам