1. Ссылки покупок

    Стратегия на турбо опционы

    Обучение по Бинарным Опционам.

    Бизнес по рецепту. продажа женских товаров

    Мануал по добыче бесплатного трафика с поисковика Bing (2016)

    От 6к уникальных посетителей на страницу ВК

    Facebook

    Стратегия Лайв Профит - ставки на футбол

    [Ирина Шмидт] - Церебро Таргет 2016

    Новый дорген.

    Стратегия на спорт.

    Двойной арбитражник по бесплатному трафику (2016)

    Подробная инструкция по Созданию интернет магазина чая с нуля (2016)

    Чертежи солнечного био-вегетария площадью 1200 кв.м. (СБВ-Профи)

    Адский стрим по копирайтингу: то чувство, когда подглядывать - хорошо!

    Видео-Курс - Tехнология быстрого старта в email рассылках (2016)

    Продвижение партнерских программ в одноклассниках (2016)

    Научу грести трафик. Только успевай сервера покупать!

    Трафик из ВК (Схема + Кейсы)

    Пассивный доход со стабильными выплатами.Схема добычи трафика.

    Секрет создания аккаунта яндекс директ без НДС

    Система ставок от проверенного каппера

    Государственный и банковский конфискат +VIP блок (2016)

    Как работать и зарабатывать деньги на продвижении своих проектов (2016)

    Секреты бесплатной рекламы от бывшего сотрудника Вконтакте

    Mobile Арбитраж - Арбитраж мобильного трафика (2016)

    BUSINESS MANUAL - Безопасные схемы заработка

    Как получать 1000-и заказов из CPA сетей (Дм.Ковпак)

    Как зарабатывать удаленно 100 тыс. руб на продвижении в Инстаграме без вложений и жить в Тайланде

    Самонаполняемые Видео-сайты!

    Прибыльная стратегия для бинарных опционов, первый доход через считанные дни + бонус!

    Траф с Вк за копейки

    Профит на онлайн теме от 30к до Неизвестно в месяц

    Легальный высокодоходный бизнес в реале

Блог вебмастера. Создание и раскрутка сайтов. | Пишем собственный парсер. PHP для упрощения...

  1. [Блог вебмастера. Создание и раскрутка сайтов.]
    Сегодня я опубликую мини-туториал по написанию парсеров с нуля. Думаю каждый seo-шник сталкивался с необходимостью обработать автоматически довольно большие объемы информации. И куда легче, быстрее и спокойнее сделать это самому, написав на коленке несложный скрипт за пол-часа.

    В примере я приведу liveinternet и парсинг всех сайтов определенной тематики. Туториал расчитан на тех, кто немного щупал HTML/CSS и слышал о PHP. Для полных новичков в программировании урок будет сложноват, но вполне реален для усвоения. Тем более, что по каждому из шагов дополнительно можно найти кучу информации.

    Скачать готовый парсер с комментариями: index.php

    Итак, поехали! )

    0. Нужен PHP.
    Для Windows-юзеров можно скачать: http://www.denwer.ru/
    Для MacOS-юзеров советую MAMP (free-версии хватит): http://www.mamp.info/en/

    1. Анализируем задачу.
    У нас стоит цель взять url всех сайтов определенной тематики. Заходим для примера сюда: http://www.liveinternet.ru/rating/ru/genealogy/index.html?page=1 и начинаем анализировать.

    1. Для отображения всех ссылок используется пагинация (всего 9 страниц)
    2. Благодаря пагинации, страницы отличаются между собой по GET параметру page.
      Т.е. для первой страницы адрес будет: http://www.liveinternet.ru/rating/ru/genealogy/index.html?page=1.
      А для девятой: http://www.liveinternet.ru/rating/ru/genealogy/index.html?page=9
    3. На каждой странице есть по 30 ссылок, которые нам и надо взять
    4. Все ссылки обрамляются в одинаковом HTML-коде.


    <a name="kakzovut.ru"
    target="_blank" onclick="cl(this)" href="http://www.kakzovut.ru/">
    КакЗовут.Ру - Значение имени, мужские и женские имена
    </a>


    Для начала ставим цель спарсить 30 сайтов с одной страницы. Для этого нам нужны регулярные выражения.

    2. Парсим html-код страницы.
    Делается это при помощи функции file_get_contents. Таким образом весь html-код страницы будет в переменной $url.

    $cat = "http://www.liveinternet.ru/rating/ru/genealogy/index.html?page=1"
    $url = file_get_contents($cat);


    3. Регулярные выражения.
    Досконально изучить регулярные выражения с нуля за один мини-урок точно не успеем. Я оставлю тут 3 ссылки, которые помогут всем желающим полностью войти в курс дела и понять их:
    http://phpfaq.ru/regexp
    http://ru2.php.net/manual/ru/reference.pcre.pattern.syntax.php
    http://dreamhelg.ru/2010/02/15-regular-expression-for-web-developers/

    Поскольку мы заметили, что у всех ссылок есть один общий шаблон:

    <a name="kakzovut.ru"


    то регулярное выражение, позволяющее их “выцепить” будет таким:


    preg_match_all('/<a name="(.*)"/', $url, $mathces);


    В итоге все url помещаются в многомерный массив $matches.

    3. Сохранение в файл.
    Все наши результаты стоит сохранить в файл, т.к. выводить тысячи страниц в браузере не комильфо.
    О работе с файлами на php можно почитать тут:
    http://www.php.su/articles/?cat=fs&page=005

    А “скелет” сохранения в файл будет таким:


    $file = fopen("result.txt", "a+"); // открываем файл с записью в конец
    fwrite ($file, $domain."\n"); // записываем с новой строчки
    fclose($file); // закрываем соединение


    4. Парсим все.
    Вообще, по-хорошему, для такой задачи стоит изпользовать cron-демон. Он будет автоматически запускать ваш скрипт, php при каждом запуске будет увеличивать счетчик страниц на одну и сохранять, и так каждую минуту до последней страницы.
    Но поскольку тут только 9 страниц, и что бы не усложнять туториал сделаем небольшой рабочий хардкод >_p>
    А именно запустим все в браузере, а в php поставим обычный цикл "for" на 9 страниц. Для девяти страниц за раз этот цикл отработает нормально.

    Итого выходит рабочий код на 11 строчек :)


    / url для загрузки файлов
    $file = fopen("result.txt", "a+"); // открываем файл для записи результатов

    for ($j = 1; $j<9; $j++) { // запускаем цикл на 9 страниц
    $url = file_get_contents($cat.$j); // парсим каждую страницу в цикле от первой до девятой
    preg_match_all('/<a name="(.*)"/', $url, $mathces); // регуляркой вытаскивам нужные url и помещаем в массив $matches

    $count = count($mathces[0]); // считаем количество полученных url (в данном случае тридцать
    for ($i = 0; $i<$count; $i++) {
    fwrite ($file, $mathces[1][$i]."\n"); // Записываем в файл результаты, каждый с новой строчки.
    }
    }
    ?>


    В итоге все 248 сайтов рубрики окажутся у вас в файле result.txt. А дальше можете их анализировать как захотите :)
     

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