UmaxForum
Ответ
 
Опции темы Опции просмотра
Старый 05.06.2007, 16:19   #1
Гость
 
Сообщений: n/a
Хорошо

<span style='font-size:11pt;line-height:100%'><span style='color:white'>ПАРСЕР Yahoo, Google, MSN, Yandex, Rambler, Aport, Webalta
СКРИПТ ПРОВЕРЕННО РАБОТАЕТ НА PHP5.1.6 И PHP4.4.4!!!</span></span>

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Исходный код </td></tr><tr><td id="CODE"><?
set_time_limit(400);
$se=array(
'http://search.yahoo.com/search?p=',
'http://www.google.ru/search?q=',
'http://search.live.com/results.aspx?q=',
'http://www.yandex.ru/yandsearch?text=',
'http://www.rambler.ru/srch?words=',
'http://sm.aport.ru/scripts/template.dll?r=',
'http://webalta.ru/search?q='
);
foreach($_GET as $key => $val){$$key=$val;}
if(empty($srch) OR empty($pages)) {
echo '<form><input name="srch" type="text"><input type="submit" value="Go!"><br>';
foreach($se as $num => $url) {
*preg_match('|http:/.*[/.]+(.+)\..+/|',$url,$name);
*$name=ucfirst(strtolower($name[1]));
*echo "<input type=\"checkbox\" name=\"se$num\" ><b>$name</b>";
}
echo '<br>Pages:<input name="pages" type="text" value="1"><br><input type="checkbox" name="showres"><b>Show results</b></form>'; exit;
}


$pages++;$j=0; $srch=rawurlencode(trim($srch)); $allurls=array();
while($j<count($se))
{
$page=NULL;
$url=$se[$j]; $nm='se'.$j; $j++;
if(empty($$nm)) continue;
$page[1][0]=$url.$srch; $i=1;
do{
*$page=str_replace('"', '', $page[1][count($page[1])-1]);
*if(substr($page,0,7) != 'http://')$page=substr($url,0, ($page[0]=='/' ? 0 : 1) + strrpos($url,'/')).$page;
*$html=file_get_contents(html_entity_decode($page) );
*$allurls=array_merge($allurls, geturls($html)); $i++;
}
while(preg_match_all('|.*href=(.+?)[ ">]{1,3}.*'.$i.'<|', $html , $page) AND $i < $pages);
}
if($allurls==array()) {echo '0 URLS FOUND'; exit;}
$allurls=implode('',array_unique($allurls));
$filename=date("d-m-Y_H-i-s").'.txt';
$file = fopen($filename, 'w+');
fwrite($file, $allurls); fclose($file);
echo "<b>Search: $srch<br>Result:<a href='".$filename."'>".$filename."</a></b><br>";
if(!empty($showres)) echo preg_replace('|\n|U', '<br>', $allurls);

function geturls($html) {
$result=array();
$html=html_entity_decode($html);
$html=rawurldecode(str_replace("\n",'',$html)) ;
$urls=explode('http://', preg_replace('|\>.*\<|U','><',$html));
$html=preg_replace('#(\<script.+/script|\<.+\>)#U','',$html);
for($i=0;$i<count($urls); $i++){
*$nd=strpos($urls[$i], '"');
*if($nd){
* $link=preg_replace('|(.*)/\Z|', '$1', trim(substr($urls[$i], 0, $nd)));
* $len=strlen($link);
* if(($li=strpos($link,'/'))==FALSE) {$li=$len-1;}
* $si=0;
* while($si=strpos($html, substr($link,0,$li+1), $si)){
* *$lnk=1; $li=0;
* *while($li<$len) {
* * if($html[$si]!=$link[$li]){
* * *if($html[$si]!=' '){
* * * if( ($html[$si]!='.' OR $html[$si+1]!='.') AND $html[$si]!="\xE2" AND $html[$si]!="\x26") $lnk=0;
* * * break;
* * *} else $li--;}
* * $li++; $si++;}
* *if($lnk){
* * $rends[]=$li-1;
* * $result[]=$link."\n"; } } } }
for($i=0;$i<count($result);$i++) {
*$na=0; if(strpos($result[$i],'/')) $na=1;
* for($j=0;$j<count($result);$j++) {
* *if($j!=$i AND strpos($result[$j],'/') AND strpos(' '.$result[$j], substr(trim($result[$i]),0,$rends[$i] ) )) {
* * if($na) {if(strlen($result[$j]) > strlen($result[$i])) $result[$j]='';}
* * else {$result[$i]=''; break;} } } }
return $result;
}
?>[/quote]
Использование preg_ функций сведено на минимум, так что скорость теперь еще больше чем у предшественника!
Размером менее 3 Кб, успешно парсит все страницы с каждого поисковика, убирает все лишние и повторяющиеся урлы. Тестите!

P.S. Сортировку по PR ещё сделать?
  Ответить с цитированием
Старый 05.06.2007, 16:21   #2
AlexG
Пользователь
 
Регистрация: 24.04.2007
Адрес: Nsk
Сообщений: 76
AlexG пока неопределено
По умолчанию

Сделай.
__________________
а сейчас надо дунуть, если не дунуть, то ничего неполучится! А. Акопян.
Несмотря на то, что количество состояний Кубика Рубика превышает 4,310 в девятнадцатой степени, любое из них можно перевести в &quot;собранное&quot; не более чем за 29 ходов.
AlexG вне форума   Ответить с цитированием
Старый 05.06.2007, 16:25   #3
Гость
 
Сообщений: n/a
По умолчанию

Новый активный прогер появился.
  Ответить с цитированием
Старый 05.06.2007, 16:28   #4
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от [b
Цитата[/b] (AlexG @ Июн 05 2007,11:21)]Сделай. *
а нах? *

Цитата:
Сообщение от [b
Цитата[/b] ]Новый активный прогер появился.
а старый кто был?
  Ответить с цитированием
Старый 05.06.2007, 16:31   #5
Гость
 
Сообщений: n/a
По умолчанию

Ты уже супер популярный прогер!
Смотри, твой код уже цитируют на блогах: http://seorepa.com/blog/archives/2007/06/04/344 *

Слово &quot;раздавали&quot; хорошо придумал автор.
  Ответить с цитированием
Старый 05.06.2007, 16:41   #6
algoritm
Местный
 
Аватар для algoritm
 
Регистрация: 09.01.2006
Адрес: Earth
Сообщений: 981
algoritm на пути к лучшему
По умолчанию

вот нехрен мне делать было - поставил ради интереса.
нихрена не работает, тоесть непарсит.
ты его на 5 пхп проверял?
__________________
неподписываюсь
algoritm вне форума   Ответить с цитированием
Старый 05.06.2007, 16:45   #7
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от [b
Цитата[/b] (Ptolemey @ Июн 05 2007,11:31)]Ты уже супер популярный прогер!
Смотри, твой код уже цитируют на блогах: http://seorepa.com/blog/archives/2007/06/04/344 *

Слово &quot;раздавали&quot; хорошо придумал автор. *
ГЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
  Ответить с цитированием
Старый 05.06.2007, 16:48   #8
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от [b
Цитата[/b] (algoritm @ Июн 05 2007,11:41)]вот нехрен мне делать было - поставил ради интереса.
нихрена не работает, тоесть непарсит.
ты его на 5 пхп проверял?
Поподробней напиши что не работает и какие ошибки.
У меня отлично работает на PHP 4.4.4
  Ответить с цитированием
Старый 05.06.2007, 16:59   #9
algoritm
Местный
 
Аватар для algoritm
 
Регистрация: 09.01.2006
Адрес: Earth
Сообщений: 981
algoritm на пути к лучшему
По умолчанию

никаких ошибок , только адрес меняется в адресной строке ,прибавляются параметры. и всЁ- ничего непроисходит.
неморочься, оно мне ненадо.
__________________
неподписываюсь
algoritm вне форума   Ответить с цитированием
Старый 05.06.2007, 17:06   #10
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от [b
Цитата[/b] ]и всЁ- ничего непроисходит.
ИСПРАВЛЕНО! Теперь на php5 тоже работает!
  Ответить с цитированием
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT, время: 01:12.


Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd. Перевод: zCarot