
20.03.2008, 00:12
|
|
Постоянный
Регистрация: 28.04.2007
Сообщений: 547
С нами:
10019906
Репутация:
3702
|
|
Парсер Я.Каталога, Мини-сервис
Код:
function get_dir($link)
{
$html=file_get_contents($link);
$link=str_replace("http://yaca.yandex.ru","",$link);
$html=explode($link,$html);
for($i=0;$i<count($html);$i++)
{
$a=explode('"',$html[$i]);
$out[]="http://yaca.yandex.ru".$link.$a[0];
}
return $out;
}
function parser_yaca($link)
{
$html=file_get_contents($link);
if (eregi('a target="_blank" class="title" href=',$html))
{
$html=explode('a target="_blank" class="title" href="',$html);
for ($i=1;$i<count($html);$i++)
{
$a=explode('"',$html[$i]);
echo $a[0]."<br>";
/*
$file=fopen("yaca_out.txt","a");
fputs($file,$a[0]."\r\n");
fclose($file);
*/
}
}
}
Источник
Иногда бывает так что есть несколько сотен(тысяч) баз кейвордов
Нам же хочется получить одну и отсортированную
Первый скрипт производит склейку файлов
Создаем директорию in и туда кладем файлы для склейки:
Код:
<?
set_time_limit(0);
$c=0;
unset($f_array);
$f_array_c=0;
$d=opendir("in");
while(($e=readdir($d))!==false){
if($e=='.'||$e=='..')continue;
$f_array[$f_array_c]=$e;
$f_array_c=$f_array_c+1;
}
closedir($d);
print_r($f_array);
//$f_array=array(
//'1.txt',
//'2.txt',
//);
$wf=fopen("out.txt","a+");
for($x=0;$x<count($f_array);$x++){
$fname=$f_array[$x];
$ff=fopen("in/$fname","r");
while(!feof($ff)){
$str=trim(fgets($ff));
fwrite($wf,$str."\n");
$c=$c+1;
echo $c."\n";
}
fclose($ff);
}
fclose($wf);
?>
Получаем файл out.txt состоящий их склеенных файлов
Второй скрипт сортирует на уникальные значения и по алфавиту
in.txt исходный файл
out.txt результат:
Код:
<?
set_time_limit(0);
echo "loading\n";
$fruits=file("in.txt");
echo "loaded\n";
echo "unique start\n";
$fruits=array_unique($fruits);
echo "unique stop\n";
echo "asort start\n";
asort($fruits);
echo "asort stop\n";
//$out='';
echo "writing\n";
$wf=fopen("out.txt","a+");
foreach ($fruits as $key => $val) {
//if(strlen($val)>15){
//$f=substr($val,0,7);
//if($f=='http://'){
fwrite($wf,trim($val)."\n");
//}
//$out=$out.trim($val)."\n";
//}
}
fclose($wf);
//$out=trim($out);
//$wf=fopen("out.txt","a+");
//fwrite($wf,$out."\n");
//fclose($wf);
echo "done\n";
?>
(c) tname
Последний раз редактировалось Solide Snake; 20.03.2008 в 00:14..
|
|
|