ProxyRotator

A simple tool to rotate proxy using https://proxyrotator.com or load proxies list from a file. This tool also make a simple request to test url (Configurable) to check whether a proxy is valid or not.

Installation

Add this line to your application's Gemfile:

gem 'proxy_rotator'

And then execute:

$ bundle

Or install it yourself as:

$ gem install proxy_rotator

Usage

Include proxy_rotator gem in your .rb file

require 'proxy_rotator'

Configuration

ProxyRotator.configure do |config|
  config.default_timeout = 5 # 5 seconds
  config.api_key = 'YOUR_PROXY_ROTATOR_API_KEY'
  config.default_test_url = 'https://google.com'
end

Use proxyrotator.com service

my_proxy = ProxyRotator.rotate_remote

Passing API parameters

get:    true/false  Proxy supports GET requests
post    true/false  Proxy supports POST requests
cookies true/false  Proxy supports cookies
referer true/false  Proxy supports referer header
userAgent   true/false  Proxy supports user-agent header
port    integer Return only proxies with specified port
city    string  Return only proxies with specified city
state   string  Return only proxies with specified state
country string  Return only proxies with specified country
xml true/false  Response will be in XML instead of jSON

Example

config = {
    :get => true,
    :port => 8080,
    :city => 'New York',
    :state => 'NY',
    :country => 'US'
}

my_proxy = ProxyRotator.rotate_remote(config)

Get proxy information

proxy_info = ProxyRotator.describe_remote(config)

Load proxy list from a file

Example :

http://username:[email protected]:5678
http://1.2.3.4:5678
ProxyRotator.load_file('/your/proxy-list.txt')
my_proxy = ProxyRotator.rotate

Check proxy with test url

my_proxy = ProxyRotator.rotate(true)

Combine remote and rotate

my_proxy = ProxyRotator.rotate_first_then_remote
my_proxy = ProxyRotator.remote_first_then_rotate

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://gitlab.com/pushm0v/proxy_rotator. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the ProxyRotator project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.