2017 © Pedro Peláez
 

symfony-bundle rotating-proxy-bundle

Rotating proxy bundle for Symfony.

image

modstore/rotating-proxy-bundle

Rotating proxy bundle for Symfony.

  • Monday, July 23, 2018
  • by modstore
  • Repository
  • 1 Watchers
  • 1 Stars
  • 40 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

RotatingProxyBundle

This bundle rotates through your pool of http proxies when sending subsequent requests., (*1)

Installation

composer require modstore/rotating-proxy-bundle:dev-master, (*2)

Add RotatingProxyBundle to your application kernel

// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...
        new Modstore\RotatingProxyBundle\ModstoreRotatingProxyBundle(),
        // ...
    );
}

Add your proxy pool

Add your proxy ip addresses to the db table: modstore_rotating_proxy - host: The proxy IP address - port: The proxy port - status: 1 to enable, 0 to disable, (*3)

Usage example

/** @var \Symfony\Component\DomCrawler\Crawler $crawler */
$crawler = $container->get('modstore_rotating_proxy.manager')->crawlPage(
    'https://github.com/modstore/RotatingProxyBundle',
    'github',
    ['Referer' => 'https://www.google.com']
);

An instance of the Symfony dom crawler will be returned: https://symfony.com/doc/current/components/dom_crawler.html, (*4)

Notes

In order to ensure requests aren't too similar and blocked as a bot, each request will set a random user agent string. It is also a good idea to provide a "Referer" string that would be a plausible organic referrer to the page you're requesting., (*5)

The second argument is a group name. Requests are rotated within a group. Generally for all requests to a particular domain, you would set the same group name., (*6)

Test command

There's a test command to see how it works and test your requests. The text from the body of the page will be output., (*7)

php bin/console modstore_rotating_proxy:test

Optionally a url can be provided:, (*8)

php bin/console modstore_rotating_proxy:test --url='https://github.com/modstore/RotatingProxyBundle'

When the url argument is omitted, a request will be sent to whatsmyip.org., (*9)

Log

A log of all requests is stored in the modstore_rotating_proxy_log table., (*10)

The Versions