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

Тема в разделе "Программная часть", создана пользователем evgenr3, 11 янв 2016.

  1. evgenr3

    evgenr3 Administrator Команда форума

    Регистрация:
    11 дек 2015
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Недавно понадобился список тайтлов со всего сайта, чтобы составить анкоров. Нашёл исходники, заточил под себя теперь без проблем можно получить список тайтлов и ссылок заодно (по желанию). Если для анокоров - просто список Title всего внутряка.

    Код:
    <?php
    $url = "http://сайт/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 карту в переменную $url и выходной файл pars_title.txt (Обязательно создайте файл pars_title.txt).
    Скрипт возвращает данные и записывает в файл pars_title.txt информацию вида: "ссылка|тайтл". А если покрутить, то и что душе угодно, хоть дескрипшины или киворды.

    Далее с этой информацией идём в конвертер, например Wmaid.
    В конвертере вбиваем спарсенную информацию. Выбираем разделитель "|" и шаблон, например самый простой - <a href="(1)">(2)</a>. Получаем активные ссылки. Также можно так парсить, чтобы анкоры были с разбавлением, заменять своим доменом, если парсим чужой сайт и т.п.

    Помимо тайтлов, можно парсить любой текст между двумя тегами, обратите внимание на строку
    Код:
    preg_match("!<title>(.*?)<\/title>!si", $page, $tit);
    если <title> поменять на h1 можно спарсить все заголовки с сайта, ну или весь текст в полной новости.
     
  2. art-krik

    art-krik New Member

    Регистрация:
    7 ноя 2016
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Адрес:
    Челябинск
    Эта бесплатная программка Netpeak Spider тоже собирает и тайтлы и дескрипты с ссылками и сохраняет в Excel
     

Поделиться этой страницей