Как стянуть ссылки на страницы?

Статус
В этой теме нельзя размещать новые ответы.
Как это сделать?
 
;)

PHP:
<form name="" action="" method="post">
<li><b>Запрос</b></li><input name="query" type="text" value=""><br><br>
<li><b>Колличество ссылок..</b></li><input name="n" type="text" value="">  <br><hr>
<input type="submit" value="Отправить">
</form>
<br><br><br>
<?php

	function parse_yandex($query, $gl)
	{
		for ($i_for=0; $i_for<=$gl; $i_for++){
			if ($i_for=="0"){$n_page="0";} else {$n_page=$i_for-1;}

				$request = "http://yandex.ru/yandsearch?p=$n_page&text=".urlencode(trim($query));
				$pattern = '/<a tabindex=".*" onmousedown=.* href="(.*)" target="_blank">.*<\/a>/isU';

				$result = file_get_contents($request);

				if(preg_match_all($pattern, $result, $matches))
				{
                			for ($i=0; $i<count($matches[0]); $i++)
                			{
                				$link = parse_url($matches[1][$i]);

                				$serp[] = $link['host'];
                			}
                		}

		}


		return $serp;
	}


if ($_POST)
{
	$qq=parse_yandex($_POST['query'], ceil($_POST['n']/10)-1);

	  	for($i=0; $i<=$_POST['n']; $i++)
	  	{
           echo "$i) Сайт <b>$qq[$i]</b> был найден на странице по запросу <b>$_POST[query]</b><hr>";
	  	}
}


?>


PS. Свеже испеченый ))


Запустил на денвере, ошибку выдало.
Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\test1.ru\1.php on line 17
 
PHP:
<form name="" action="" method="get">
<li><b>Запрос</b></li><input name="query" type="text" value=""><br><br>
<li><b>Колличество ссылок..</b></li><input name="n" type="text" value="">  <br><hr>
<input type="submit" value="Отправить">
</form> 

<?php
if(isset($_GET['query']) && isset($_GET['n'])){
set_time_limit(0);
$num = $_GET['n'];
$p = $num / 10;
$i=0;
$query = $_GET['query'];
$urls = array();
while($i!=$p){
    if(preg_match("/ /i", $query)) $query = preg_replace("/ /i","+",$query);
    sleep(10);
    $string = file_get_contents("http://www.yandex.ru/yandsearch?p=".$i."&text=".$query);
    preg_match_all("/<span[^>]*class=\"green_url\"[^>]*>(.+?)<\/span>/si",$string,$matches);
    foreach($matches[1] as $k=>$m){
        $m = preg_split("/ |\&nbsp/i", $m);
        $m = preg_replace("/\r|\n|http:\/\/|www\./si","",$m[0]);
        $m = preg_split("/\//i", $m);
        $m = $m[0];
        array_push($urls, $m);    
    }
    $i++;
}
echo '<pre>';
print_r($urls);
echo '</pre>';
}  
?>

попробуй такой вариант ... я его использую в своей системе ))
 
zzallexx, давно искал.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху