HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

парсер url-ов
  #1  
Старый 26.10.2008, 13:33
dm1z
Познающий
Регистрация: 02.02.2008
Сообщений: 48
С нами: 9616042

Репутация: 19
По умолчанию парсер url-ов

задача такая

нужно выдернуть все урлы со страницы
к примеру
http://www.google.ru/search?complete...&start=90&sa=N

и сложить их в файл!

а если б ещё и менять значение скажем +10

http://www.google.ru/search?complete...22&start=здесь +10 вместо 90 100&sa=N

при каждом следущем сборе дак вообще замечатильно!

может кто подскажет как реализовать?
хотя б первую часть!
заранее спс!!!
 
Ответить с цитированием

  #2  
Старый 26.10.2008, 14:00
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами: 9649706

Репутация: 3338


По умолчанию

Код:
<?php
// Парсер url после выдачи гугла по запросу
function parse_serp($engine, $query)
{
switch (strtolower($engine))
{
case 'google':
$request = 'http://www.google.com/ie?hl=ru&num=100&start=0&lr=&q='.urlencode(trim($query));
$pattern = '/<a title="(.*)" href=(.*)>(.*)<\/a>/isU';
$result = file_get_contents($request);
if(preg_match_all($pattern, $result, $matches))
{
for ($i=0; $i<count($matches[0]); $i++)
{
$link = $matches[2][$i];
$serp[] = $link;
}
}
break;
}
return $serp;
}
$result = parse_serp("google", "antichat");
$log = implode("\r\n",$result);
$handler=fopen('log.txt','w');
if($handler) {fwrite($handler,$log);}
fclose($handler);
echo "Все данные были сохранены в log.txt"; 
?>

Последний раз редактировалось Pashkela; 26.10.2008 в 20:23..
 
Ответить с цитированием

  #3  
Старый 26.10.2008, 22:18
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами: 9649706

Репутация: 3338


По умолчанию

ну и окончательная версия по твоему вопросу (универсальная):

Код:
   
<?php
// Парсер url после выдачи гугла по запросу
$handler=fopen('log.txt','w'); // если не хотим терять старые данные - то "a+"
$limit = 0;
$zapros = "antichat"; // Наш запрос для поиска
$page_start = 0; // Стартовая страница из расчета 100 результатов выдачи на страницу
$page_end = 200; // Последняя страница из расчета 100 результатов выдачи на страницу
function parse_serp($engine, $query, $limit)
{
if ($limit<100) {$request = 'http://www.google.com/ie?hl=ru&num=100&start=' . $limit. '&lr=&q='.urlencode(trim($query));}
if ($limit>=100) {$request = 'http://www.google.com/ie?q=' . urlencode(trim($query)) . '&num=100&hl=ru&lr=&start=' . $limit . '&sa=N';}
$pattern = '/<a title="(.*)" href=(.*)>(.*)<\/a>/isU';
$result = file_get_contents($request);
if(preg_match_all($pattern, $result, $matches))
{
for ($i=0; $i<count($matches[0]); $i++)
{
$link = $matches[2][$i];
$serp[] = $link;
}
}
return $serp;
}
for ($i=$page_start;$i<=$page_end;$i++)
{
$result = parse_serp("google", $zapros, $i); 
$log = implode("\r\n",$result);
if($handler) {fwrite($handler,$log);}
$i=$i+100;
if ($i>100) {$i=$i-1;}
}
fclose($handler);
echo "Все данные были сохранены в log.txt"; 
?>

Последний раз редактировалось Pashkela; 26.10.2008 в 23:36..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Icq 5/6 open url exploit %00 Skype, IRC, ICQ, Jabber и другие IM 5 21.07.2008 18:41
phpBB < 2.0.15, BBCODE URL в phpBB karapuz Уязвимости CMS / форумов 21 17.06.2005 06:11



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.