Как вытащить код со страницы

logoСегодня, после большого перерыва, продолжаю серию статей, которые экономят вам время.

Предположим, что в сети есть сайты, на которых есть всего пару строк информации, которая вам нужна. Например, рассмотрим курсы валют. Из всей страницы нам нужны только курсы доллара и евро. Заходить на страницу каждый раз? Зачем?

Есть простой способ доставать любую информацию со страниц в интернете и это совсем несложно. Смотрим как

Есть замечательный сервис http://www.feed43.com. Родился он из удобнейшей программы для компьютера, которую создатели, почему-то не хотят вспоминать. Ну да ладно. Попробуем…
logo
Для начала надо установить удобный для нас язык общения.

logo
Далее, нажимаем на ссылку “Создать свой канал”. Можно предварительно полистать информацию со ссылок помощи, там всё достаточно доступно объясняется

logo
Итак, вводим адрес сайта откуда мы собираемся получать информацию

logo
Нас интересует вот этот кусочек

logo
После нажатия “Обновить” нам покажут код страницы. Не надо этого пугаться :)

Смотрим на странице оригинале какой нибудь ориентир. В нашем случае это слово “Сегодня”. И простым поиском находим его в коде

logo
Далее просто визуально смотрим что нам нужно и в каких повторяющихся (например) блоках находится нужная нам информация. Выбираем первый блок и копируем его вниз

logo
А теперь начинается простое, но на первый взгляд сложное. Нам надо из этого “кода” выцепить именно информацию. Давайте посмотрим внимательнее.

Надо запомнить всего две вещи:
{*} означает “любое количество любых символов”
{%} означает, что эта часть может меняться и именно она нам интересна.

Смотрите как трансформируется этот блок:

<tr class="font12">
<td><a href="http://bank.ru/currency/#" class="active" onclick="setCurrency(this, 'USD'); return false"></a><b>USD</b></td>
<td>31.8056</td>
<td class="gray">-0.1550</td>
</tr>
<a href="http://bank.ru/currency/#" class="active" onclick="setCurrency(this, 'USD'); return false"></a><b>

это нам не интересно, заменяем на {*}

<b>USD</b>

в этом блоке нам интересно USD и оно будет меняться (в следующей строке это будет EUR). Заменяем на {%}

<td>31.8056</td>

в этом блоке нам интересно число и оно будет меняться с каждой строкой (в евро будет другая цифра). Заменяем на {%}

<td class="gray">-0.1550</td>

Здесь интересны сразу два куска – цвет и число. Заменяем оба на {%}

Важно: Не забываем проставлять в промежутках {*}. Если у вас что-то не работает – скорее всего вы забыли вставить эти пропуски.

И мы получаем вот такой вот код, где отмечено какой кусок надо найти, что оттуда выкинуть и что нам в нём интересно.

<tr class="font12">{*}
<td>{*}<b>{%}</b></td>{*}
<td>{%}</td>{*}
<td class="{%}">{%}</td>{*}
</tr>

logo
Нажимаем на “Извлечь” и смотрим что у нас получилось

logo
Система покажет нам что она нашла и как “распихала”. В дальнейшем, если мы напишем {%1} – мы получим то, что туда попало.

logo
А теперь надо эти данные как-то показать нам. Прямо так и пишем – хочу вот это, потом это, потом это…

logo
В предыдущем случае будет формироваться отдельная запись на каждую строку. Чаще всего лучше собрать их в “одну запись”. Т.е. вы заметите что что-то поменялось, но будете просматривать не каждую валюту отдельно, а бросите взгляд на весь список.

logo
В прошлом примере всё объединилось в одну строку, но выглядит это не так, как хотелось бы. Здесь надо отметить, что строка понимает обычный html. Просто добавим в самое начало “перевод строки”, чтобы каждая запись начиналась с новой строки.
<BR> и добавим то, что хотим выделить. <B> в начале выделения и </B> в конце. Все что между ними будет написано жирным шрифтом.

logo
А можно использовать, например, тэги списка <li> и </li>

По поводу форматирований, html и т.д. я уже писал вот здесь. Там слайды для самых новичков, поясняющие суть.

logo
Мы сделали всё как хотим. Теперь как этим пользоваться? Смотрим внизу на ссылку… Можно на неё нажать.

logo
Или если что-то плохо (зависит от браузера) – можно сделать ручную операцию. Вначале копируем ссылку

logo
Теперь открываем, например Google Reader

logo
Выбираем “Подписаться \ Subscribe”

logo
и просто вставляем туда эту ссылку

logo
Вы подписаны на это дело

logo
И можете посмотреть результат.

Теперь, когда курсы сменятся – вы увидите это. И не надо никуда ходить и рассматривать сопутствующие банеры и т.п.

В бесплатном варианте есть ограничения – вы можете прочесть о них на сайте. Но и бесплатного варианта в большинстве случаев хватает. Страница, откуда вы хотели доставать информацию будет просматриваться несколько раз в день и если что-то изменится – вы это увидите в, например, google reader.

А теперь бонус. Вы можете делать с этим rss фидом (тем, что у нас получилось в результате) много много что. Я уже писал про rss тут и тут, например.

Например, при помощи сервиса http://feedburner.google.com можно сделать информер к себе на сайт, который будет автоматически, без вашего участия, при помощи feed43 выбирать информацию о курсах валют и показывать её на вашем блоге, сайте и т.п.

Вот пример сделанный чуть модифицировав этот урок

Курсы валют : Банк.ru

↑ Grab this Headline Animator

А можно поискать сервисы, типа rss2email и получать эти обновления на почту. И много много других вариантов использования…

Ведь так можно вытаскивать и анекдоты с баша и заметки с любимых сайтов и т.п.

В общем рекомендую, если что непонятно – спрашивайте…

  • ele_x

    ух ты!

  • Антон Доценко

    Скажите плиз, как вытащить код скрипта из этой страницы?

    http://www.yaplakal.com/fun/magic.htm

    • Сложно ответить на такой вопрос :) Которого скрипта? В двух словах – жмите в браузере на этой странице клавишу F12. и уже там искать скрипт. (Хром, FireFox, IE). Если другой браузер – по другому. Напишите толком что вам надо

  • я

    а можно например это проделать на бирже? допустим мне надо исход на тоталы и с кэф. 2,можно так сделать? это чтоб не искать,матчей очень много,поэтому чтоб искал в автомат. режиме с данными параметрами

    • Конечно можно :)

      • я

        круто вообще, только я не понял(((
        можно еще подробней написать? ссылку на вк могу написать. подробней опишу ситуацию

        • Я тоже ничего не понял. На какой бирже, какой исход на какие тоталы и что такое кэф? :)

          Сделать можно всё. Фишка в том, что надо задавать вопрос, чтобы было понятно что и откуда вам надо. Тогда можно подумать сколько ресурсов (времени) займёт реализовать все мечтания :) Если работы немного – сделаю. Если надо возиться – намекну как сделать, куда смотреть. Ну вы сами перечитайте свой вопрос-то :) А можно чтобы бубы в стайках вытаскивались с сайта? А можно чтобы в машине вон тот индикатор не горел? :))

          • я

            там понятно написано))
            может в вк написать? или тут?)

            • Надо чтобы было понятно именно тому у кого спрашиваете :) Так жить легче :)

              Да все равно. Можно туда, можно сюда, можно на почту (тут она есть – http://vdasus.com/about/)

              • я

                я написал на почту
                Люблю общение. Открыт, там ведь?
                ответа не было еще)

                • Я просто сейчас очень занят – читаю почту по вечерам. Ответ уже был :) Все хорошо, не будем паниковать :)

                  • я

                    я написал на почту)))

                    • Не надо все всюду дублировать. Я же написал, что вечером почту читаю, письмо получил. Как может одно дойти, а второе нет?