jtanjung/proxier

There is no license information available for the latest version (v0.4-beta) of this package.

Free proxy seeder for PHP

v0.4-beta 2021-06-10 21:27 UTC

This package is auto-updated.

Last update: 2024-06-11 03:38:48 UTC


README

Free proxy seeder for PHP

Install

Via Composer

composer require jtanjung/proxier

Requirements

This package require a service from jtanjung/pehape which contain several webdriver executable files that are needed by WebPageService to run its functionalities. As for the default webdrivers, please refer to these 3 different browser below:

  • Chrome v90.x
  • Firefox v75.0
  • Opera v75.x

Links

For other version of the webdriver, please follow these links below:

Note: The version of the browser and its driver must be compatible!

How to use

Seeding Proxy

Fetch proxy IPs from a free proxy sites:

use Proxier\ProxySeeder;

$seeder = new ProxySeeder();
$proxy = $seeder->FreeProxyListNet();
$proxy->SetTimeOut(60);
$proxy->Seed();

Get a Random Proxy

Get a random proxy information from the cache:

use Proxier\ProxySeeder;

$seeder = new ProxySeeder();
// Try to get random proxy from the cache
echo "Get a random proxy....\n";
// Call Get function to get a random entry, or pass md5 value of IP:Port
$proxy = $seeder->Seed()->Get();
echo json_encode($proxy) . "\n";

Using Event Listener

Easy coding by binding event listeners to the seeder:

use Proxier\ProxySeeder;

$seeder = new ProxySeeder();
$seeder->Bind('OnLoading', function(){
  echo "Start seeding, please wait...\n";
});
$seeder->Bind('OnSeeding', function($value){
  echo json_encode($value) . "\n";
  // You can put block code here to insert the new proxy to database
  /** ->Save([
   *   "ip" => $value->IP,
   *   "port" => $value->Port
   *   "location" => $value->Location
   * ]);
   */
});
$seeder->Bind('OnComplete', function($value){
  echo "\nComplete...\n";
  echo $value->count() ." proxy found.";
});
$seeder->Bind('OnError', function($msg, $exc){
  echo "Message = '$msg'\n";
  // throw $exc;
});

More options

Testing proxy using ProxyTester:

$tester = new Proxier\ProxyTester();
$tester->SetProxy("<IP>", "<PORT>");
$tester->Bind('OnError', function($msg, $exc){
  echo "Message = '$msg'\n";
  // throw $exc;
});
$tester->Run();

See more examples here