добрый день!
вот код:
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . "/libs/phpQuery.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/modules/db.php";
class freeproxyParser
{
public function __construct()
{
$document = phpQuery::newDocument($this->parser("https://free.proxy-sale.com/?proxy_page=1"));
$last_page = explode("=", $document->find(".pagination li:last() a")->attr("href"))[1];
phpQuery::unloadDocuments($document);
for ($i = 0; $i < $last_page; $i++)
{
$b = $i + 1;
$this->get_proxy($this->parser("https://free.proxy-sale.com/?proxy_page=" . $b));
}
}
public function parser($url, $postdata="", $cookie="")
{
$uagent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.205 Safari/534.16";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
if(empty($postdata))
{
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
}
if(empty($cookie))
{
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookies/freeproxy.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE,$_SERVER['DOCUMENT_ROOT'].'/cookies/freeproxy.txt');
}
$html = curl_exec($ch);
curl_close($ch);
return $html;
}
public function get_proxy($html)
{
$urls = array(
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/924fee2fff4c5d149433de816d985a8b.png" => "80",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/e58a3cb12d4b567523fec022a24c254a.png" => "1080",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/89b09fc0f66997e8421d8061030c983a.png" => "8080",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/59f3846408407d3143db9f405531ec65.png" => "8888",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/b0450a74d5c38f7859f8066b0a81c4f5.png" => "8088",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/a1d3cebf33ed2852e5410946c9beb04b.png" => "4145",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/8201cd23cc5d1b26b0462d7017c2628e.png" => "4153",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/066decf94e62d206974e62b2e1673886.png" => "2580",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/ed8fc6848c8592a906e9f5e875ce3eed.png" => "3629",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/299db15b3a5f119636dba89962650a03.png" => "8123",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/b8c08b828f5c8138a86e18667aa60824.png" => "808",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/e3f65f8ff04504869f3e163d532381f2.png" => "3128",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/80daea97f3413973c5ece346aa4518cc.png" => "3004",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/6288b8ac94c2cd3729370bf162930a78.png" => "8181",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/a3ac817714484fe00db6d4d0e23c46a9.png" => "4550",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/3a368e4edca060c47c2a5bc0aa6ff0dc.png" => "5220",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/ffd2a4f57b28fe028b8e02689e7888ce.png" => "443",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/6913e86febc7134f539dcf120f6238ee.png" => "6660",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/3f272975c1cc4e6d8c838ac027b4b7a9.png" => "1085",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/a089dd618ecb532de560880729150af9.png" => "8118",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/0e91a57afc1a9f95a1c2bc3cf234c0e7.png" => "4645",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/1dc2858c779e26255f0914bef2f7c0fc.png" => "3127",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/4941ccdc296f1e8d57e6c618bfdc2b76.png" => "4444",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/bf065142e4d52da8523d815e2c11d269.png" => "5555",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/4f01e9e5860bda7ff7dd578ccbe6974a.png" => "3000",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/7c4c050385d4d9cbe75b8b702859a6e4.png" => "6667",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/4f7dc9800d3b6989b68b3c6987fad613.png" => "3001",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/37a8cc48c1bf89668638a653eff5669c.png" => "1081",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/960c21bfa57049a05043a830d7c0ca10.png" => "8841",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/598b94247312b0635b6fd9843acf6184.png" => "6666",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/5e9d32390daf056c434a6811df5091bb.png" => "6969",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/adbfd426b471cb3ae1131261e59c5a2f.png" => "8000",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/603d8a7d8443e883e4fd5b7ff52babe7.png" => "1827",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/d8c98a82c2834e402c90124cf294510a.png" => "6363",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/230427fcd49bc6220f606f819cb921e1.png" => "1994",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/ed3900912472d71ebe51b2cc14e62b12.png" => "81",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/c6858ade9dd047ea5bac988155c6ccea.png" => "8444",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/b69f18579533d3c3465c457348a479e1.png" => "8624",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/5d8b0c255ea2ee9ce83c95fdead2c00b.png" => "1488",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/fa370e292fc3afa9fb2945490edc1300.png" => "3636",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/588e0cae49fa547834daf218cdb0cbb4.png" => "5678",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/a4f3baf5e9a9fcb6fbe0b94662d771c0.png" => "1723",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/de9a2ca73dcb022178c5127e84f39213.png" => "9001",
"https://free.proxy-sale.com/wp-content/uploads/fps/port_images/6d0ae03d0e1edfedb333009035990b68.png" => "6789"
);
$document = phpQuery::newDocument($html);
for($i = 0; $i < 10; $i++)
{
$ip_str = $document->find("tbody tr:eq(". $i .") td:eq(0)")->text();
$ip = explode("Н", $ip_str)[0];
$port = $document->find("tbody tr:eq(". $i .") td:eq(1) img")->attr("src");
if(!$port)
{
$port = $document->find("tbody tr:eq(". $i .") td:eq(1)")->text();
}
else
{
foreach ($urls as $url => $key)
{
if($port == $url)
{
$port = $key;
}
}
}
$country = $document->find("tbody tr:eq(". $i .") td:eq(2)")->text();
$type = $document->find("tbody tr:eq(". $i .") td:eq(3)")->text();
if($ip != "" && $port != "" && $country != "" && $type != "")
{
if(R::count("proxys", "ip = ? AND port = ?", array(trim($ip), trim($port))) == false)
{
$connect = R::dispense("proxys");
$connect->ip = trim($ip);
$connect->port = trim($port);
$connect->country = trim($country);
$connect->type = trim($type);
R::store($connect);
}
}
}
phpQuery::unloadDocuments($document);
}
}
$parser = new freeproxyParser();