UmaxForum
Ответ
 
Опции темы Опции просмотра
Старый 03.06.2007, 22:03   #1
Гость
 
Сообщений: n/a
По умолчанию

Готовый парсер для МСН, гугл и яхи
Можете попробовать добавить свои поисковики в массив $se, но не факт что нормально сработает.

<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='
);
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"></form>'; exit;
}

$srch=rawurlencode($srch);
$pages++;$j=0;
while($j<count($se))
{
$url=$se[$j]; $nm='se'.$j; $j++;
if(empty($$nm)) continue;
$page[1][0]=$url.$srch; $i=1;
do{
*$page=str_replace('"', '', $page[1][0]);
*if($page[0]=='/') $page=substr($url,0,strrpos($url,'/')).$page;
*$html=rawurldecode(file_get_contents($page));
*@$allurls.=geturls($html); $i++;
}
while(preg_match_all('|.*>.*href=(.+?)[">]+.*'.$i. '<|', $html , $page) AND $i < $pages);
}

$allurls=implode('\n', array_unique(explode('\n', $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: \"$filename\".</b>";

function geturls($html) {
$content=explode('http://', $html);
$html=preg_replace('|\<.+\>|U','',preg_replace('|\ n|U','',$html));
foreach($content as $i => $str){
*$end=strpos($str, '"'); $tagend = strpos($str, '>');
*if( $end AND ($tagend > $end OR !$tagend)){
* $link=preg_replace('|(.*)/\Z|', '$1', trim(substr($str, 0, $end)));
* $expr=preg_replace('|\W|', ' * ', $link);
* if(preg_match('|'.preg_replace('| * |U', '.{1,10}', preg_quote($expr)).'|', $html)) @$result.=$link."\n";
*}
}
return $result;
}
?>[/quote]

По завершении работы результат очищается от дублей, и записывается в файл в ту же директорию, где сам скрипт.
  Ответить с цитированием
Старый 04.06.2007, 00:18   #2
VIР
Members
 
Аватар для VIР
 
Регистрация: 19.01.2007
Адрес: Дома
Сообщений: 1,095
VIР скоро придёт к известности
Отправить сообщение для VIР с помощью ICQ
По умолчанию

Все бы ничего, а мусора сколько ?
VIР вне форума   Ответить с цитированием
Старый 04.06.2007, 04:38   #3
ph34r
 
Регистрация: 15.03.2006
Сообщений: 240
ph34r пока неопределено
По умолчанию

ога, ща новички на пхп4 сервак воткнут твой скрипт и будут еще втыкать 3 часа чому не пашет)
__________________
http://reps.ru/flags/Kazakhstan.gif <span style=\'font-size:8pt;line-height:100%\'>момбетег</span>
ph34r вне форума   Ответить с цитированием
Старый 04.06.2007, 06:40   #4
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от [b
Цитата[/b] (VIР @ Июн 03 2007,19:18)]Все бы ничего, а мусора сколько ? *
Нету мусора! Мусор тока в твоем доргене! *

По сути, сам парсер, без вывода html и записи в файл:
<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Исходный код </td></tr><tr><td id="CODE">
$se='http://search.yahoo.com/search?p=';
$page[1][0]=$se.$srch;
do{
$page=str_replace('"', '', $page[1][0]);
if($page[0]=='/') $page=substr($url,0,strrpos($url,'/')).$page;
$html=rawurldecode(file_get_contents($page));
@$allurls.=geturls($html); $i++;
}
while(preg_match_all('|.*>.*href=(.+?)[">]+.*'.$i. '<|', $html , $page));

function geturls($html) {
$content=explode('http://', $html);
$html=preg_replace('|\<.*\>|U','',$html);
foreach($content as $i => $str){
$end=strpos($str, '"'); $tagend = strpos($str, '>');
if( $end AND ($tagend > $end OR !$tagend)){
*$link=preg_replace('|(.*)/\Z|', '$1', trim(substr($str, 0, $end)));
*$expr=preg_replace('|\W|', ' * ', $link);
*if(preg_match('|'.preg_replace('| * |U', '.{1,10}', preg_quote($expr)).'|', $html)) @$result.=$link."\n";
}
}
return $result;
}
[/quote]

20 строк кода, которые успешно вытаскивают все урлы со всех страниц всех трех поисковиков, при этом урлы не из выдачи игнорируются!
VIP, слабо ещё меньше код сделать?
  Ответить с цитированием
Старый 04.06.2007, 06:53   #5
Kadavr
 
Регистрация: 08.05.2007
Адрес: Крым
Сообщений: 32
Kadavr пока неопределено
По умолчанию

о, спасибо. уже знаю где его применить ))
__________________
[b]Спартанцы не спрашивают сколько их, они спрашивают где они[/b]...
- Агис Второй Спартанский
Kadavr вне форума   Ответить с цитированием
Старый 04.06.2007, 07:00   #6
Kadavr
 
Регистрация: 08.05.2007
Адрес: Крым
Сообщений: 32
Kadavr пока неопределено
По умолчанию

еще, как бы его научить парсить 2-5 словные запросы? не сильно надо, но не помешает
__________________
[b]Спартанцы не спрашивают сколько их, они спрашивают где они[/b]...
- Агис Второй Спартанский
Kadavr вне форума   Ответить с цитированием
Старый 04.06.2007, 07:16   #7
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от [b
Цитата[/b] (Kadavr @ Июн 04 2007,02:00)]еще, как бы его научить парсить 2-5 словные запросы? не сильно надо, но не помешает
ой, простите за столь нелепую недоработку!
забыл rawurlencode на запросе сделать!
Код исправлен!
  Ответить с цитированием
Старый 04.06.2007, 07:39   #8
voper
 
Регистрация: 11.11.2006
Сообщений: 17
voper пока неопределено
По умолчанию

еще бы добавить прокси и использовать доменные зоны
voper вне форума   Ответить с цитированием
Старый 04.06.2007, 07:57   #9
Гость
 
Сообщений: n/a
По умолчанию

так ты в запросы вручную вводи site:.com site:.de site:.net и так далее)
  Ответить с цитированием
Старый 04.06.2007, 07:59   #10
voper
 
Регистрация: 11.11.2006
Сообщений: 17
voper пока неопределено
По умолчанию

немного не по теме: в каком парсере кроме GlobalSquid можно использовать запороленные прокси?
voper вне форума   Ответить с цитированием
Ответ


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

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

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


Часовой пояс GMT, время: 22:06.


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