Недавно понадобился список тайтлов со всего сайта, чтобы составить анкоров. Нашёл исходники, заточил под себя теперь без проблем можно получить список тайтлов и ссылок заодно (по желанию). Если для анокоров - просто список Title всего внутряка.
<?php
$url = "http://www.zarabotay-s-nami.ru/sitemap.xml";
function FetchUrl($url, $postvars, $timeout, $ref, $blank){
sleep($timeout);
echo @date("r")." fetching $url \r\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT,30);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, trim($url));
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
$result = curl_exec($ch);
if($blank == "1"){
$result = preg_replace("/\n/", "", $result);
$result = preg_replace("/\r/", "", $result);
}
curl_close($ch);
return $result;
}
$page = FetchUrl($url, NULL, NULL, NULL, NULL);
preg_match_all("!<loc>(.*?)<\/loc>!si", $page, $out);
foreach($out[1] as $link){
$page = FetchUrl($link, NULL, NULL, NULL, NULL);
preg_match("!<title>(.*?)<\/title>!si", $page, $tit);
exec("echo '".$link."|".trim($tit[1])."' >> pars_title.txt");
}
?>
Запускаем скрипт (создаём в корне файл .php), вбив сначала сайт и его xml карту. Да, забыл сказать скрипт не может сам список страниц парсить. Но сервисов куча для создания карт сайта, да и смысл не в этом, добавить парсинг страниц не проблема. Скрипт возвращает данные и записывает в файл pars_title.txt информацию вида: "ссылка|тайтл". А если покрутить, то и что душе угодно, хоть дескрипшины или киворды. Далее с этой информацией идём в конвертер, например Wmaid.
В конвертере вбиваем спарсенную информацию. Выбираем разделитель "|" и шаблон, например самый простой - <a href="(1)">(2)</a>. Получаем активные ссылки. Также можно так парсить, чтобы анкоры были с разбавлением, заменять своим доменом, если парсим чужой сайт и т.п.
p.s. Есть дестопные варианты создание html карты сайта с анкором из тайтла. Но это в лоб, нужно чуть немного больше функционала, уже ни как. Надеюсь данное руководство Вам поможет .
Чтото у меня ничо не парсит, ругается на curl_init
Приведите ошибку полностью.
Это – Fatal error: Call to undefined function curl_init() ?
Если да, то у Вас не определяется функция, в Интернете не раз описывается как её включить. Это проблема не парсера, а на Вашей стороне. Вот тут гляньте: _http://24seo.ru/index.php?showtopic=17749