Не чего не изменилось((
error_reporting(E_ALL);
Цитата (prorok159 @ 20.10.2011 - 16:23) |
Давайте я вам скину парсер! Вы посмотрите!За одно может пригодиться!Для покупки авто |
<?
require_once(dirname(__FILE__)."/config.inc.php");
header("Content-Type: text/html; charset=utf-8");
ini_set('log_errors', 'on');
ini_set('error_log', 'error_log.txt');
ini_set('max_execution_time', '600');
//ini_set('memory_limit', '128M');
//ini_set("pcre.backtrack_limit", 1000000000);
//ignore_user_abort(1);
error_reporting(1);
$numsec=$_GET["numsec"]+0;
if ($numsec>0) // явно указан
{
$res1=mysql_query("select `URL` from `$db_table2` where `ID`=".$numsec." limit 1");
$r1=mysql_fetch_array($res1);
}
else // определяем самый старый
{
$res1=mysql_query("select `ID`,`URL` from `$db_table2` order by `LastUpdate` limit 1");
$r1=mysql_fetch_array($res1);
$numsec=$r1["ID"];
}
$col=0;
function parsepage($url)
{
global $numsec, $col, $db, $db_table, $db_table1, $db_table2, $db_table3;
//$c=file_get_contents ($url);
$c = reload_page($url);
//log_write_echo("parser.log", " - get page: $url");
preg_match_all("|/cars/used/sale/(.+?)\.html(.*?)>(.*?)<(.*?)nobr>(.*?)</nobr(.*?)10%>(.*?)</td(.*?)8%\">(.*?)<(.*?)10%>(.*?)</td(.*?)nobr>(.*?)</nobr(.*?)10%>(.*?)</td(.*?)center\">(.*?)</td(.*?)6%>(.*?)</td(.*?)nowrap>(.*?)</td(.*?)center\">(.*?)</td|", $c, $m);
for ($i=0;$i<sizeof($m[1]);$i++)
{
$col++;
$advURL = mysql_real_escape_string($m[1][$i]);
$Model = mysql_real_escape_string($m[3][$i]);
$Price = mysql_real_escape_string($m[5][$i]);
$Year = mysql_real_escape_string($m[7][$i]);
$EngineCapacity = mysql_real_escape_string($m[9][$i]);
$EngineType = mysql_real_escape_string($m[11][$i]);
$Run = mysql_real_escape_string($m[13][$i]);
$Photo = mysql_real_escape_string($m[15][$i]);
$BodyType = mysql_real_escape_string($m[17][$i]);
$Color = mysql_real_escape_string($m[19][$i]);
$City = mysql_real_escape_string($m[21][$i]);
$Customs = mysql_real_escape_string($m[23][$i]);
// проверяем, есть ли запись с таким урлом
$res1=mysql_query("select `ID` from `$db_table` where `advURL` like '".$advURL."'");
if ($r1=mysql_fetch_array($res1)) // есть
{
next;
}
else // нет
{
$sql = "insert into `$db_table` set
`advURL`='".$advURL."',
`LastUpdate`='".date("Y-m-d H:i:s")."',
`Model`='".$Model."',
`Price`='".$Price."',
`Year`='".$Year."',
`EngineСapacity`='".$EngineCapacity."',
`EngineType`='".$EngineType."',
`Run`='".$Run."',
`Photo`='".$Photo."',
`BodyType`='".$BodyType."',
`Color`='".$Color."',
`City`='".$City."',
`Customs`='".$Customs."'
";
//printr($sql);
db_sql_query($db, $sql);
$advID=mysql_insert_id();
mysql_query("insert into `$db_table1` set
`advID`=".$advID.",
`urlID`=".$numsec."
");
}
}
if(preg_match_all('| <a href="([^"]+)" title="Следующая">|', $c, $mp)){
parsepage("http://cars.auto.ru".$mp[1][0]);
}else{
//printr($c);
}
}
parsepage($r1["URL"]);
echo "Количество объявлений: ".$col;
mysql_query("update`$db_table2` set `LastUpdate`='".date("Y-m-d H:i:s")."',`LastAdvCol`='".$col."' where `ID`=".$numsec);
header( 'Location: index.php');
exit;
?>