Перейти к содержанию
 
Главная » Скрипты и парсеры

Парсим тайтлы сайта. Парсер Title.

Недавно понадобился список тайтлов со всего сайта, чтобы составить анкоров. Нашёл исходники, заточил под себя теперь без проблем можно получить список тайтлов и ссылок заодно (по желанию). Если для анокоров - просто список 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 карты сайта с анкором из тайтла. Но это в лоб, нужно чуть немного больше функционала, уже ни как. Надеюсь данное руководство Вам поможет .


Есть 2 комментария

  1. baklan пишет:

    Чтото у меня ничо не парсит, ругается на curl_init

  2. Алексей пишет:

    Приведите ошибку полностью.

    Это – Fatal error: Call to undefined function curl_init() ?

    Если да, то у Вас не определяется функция, в Интернете не раз описывается как её включить. Это проблема не парсера, а на Вашей стороне. Вот тут гляньте: _http://24seo.ru/index.php?showtopic=17749

Написать комментарий