Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

26.10.2008, 13:33
|
|
Познающий
Регистрация: 02.02.2008
Сообщений: 48
Провел на форуме: 262800
Репутация:
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
при каждом следущем сборе дак вообще замечатильно!
может кто подскажет как реализовать?
хотя б первую часть!
заранее спс!!!
|
|
|

26.10.2008, 14:00
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
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..
|
|
|

26.10.2008, 22:18
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
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..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|