в
21:47
Бесплатный информер Евро 2012
С этим Евро 2012 творится такая чехарда, что просто диву даёшься, как кто-то в этом что-то понимает. Впрочем, не буду портить праздник поклонникам спорта, а особенно тем, кто на этом активно наживается. Собственно я для того и решил опубликовать данный пост, что на данный момент тема актуальная. Надо успеть воспользоваться. Создать хотя бы временный трафик. А лучше всего привлечь постоянных читателей! Благо интересного материала у меня с избытком. Так что поверьте, мне есть, что вам рассказать.
И так, сейчас многие пытаются нажиться на Евро 2012. Сайты публикуют новости, ставят различные информеры и т.д. Вот только найти нормальный и бесплатный информер Евро 2012 проблематично. Ну, действительно, кто же вам нашару будет выдавать такую информацию. Нашару не дату, но кто их спрашивает?
Лично я нашёл только один простенький и более-менее интересный информер обратного отсчёта до начала трансляций футбольных баталий Евро 2012 на портале UA-Traveling.ua. И то он полностью JavaScript и на английском. Если всё же интересно, получить его HTML-код можно на этой странице. Вот как могут выглядеть такие информеры:
Ну да ладно. Всё это детский лепет. Куда как интересней разместить на своём сайте более подробную информацию о баталиях Евро 2012. Не так ди? Я решил не мелочиться и посмотреть, откуда эту информацию берёт Яндекс для своего проекта Чемпионат Европы по футболу 2012. Там к слову явные глюки с распознанием региона. У меня почему-то на белорусскую версию перекинуло. Или так и задумывалось? Ну да не суть важно.
Главное, что информацию они берут на сайте Sports.ru. Это один из источников. Я зашёл на этот сайт и заметил, что информер «Статистика» с таблицей, результатами и календарём у них подгружает динамически. Жаль, что не в виде XML или json, но тем не менее. Главное, что нужную информацию вы можете полeчить по адресу:
Ну а теперь функция парсера информера Евро 2012.
Как вы видите, ничего сложного здесь нет. Вытаскиваем таблицы, обрабатываем и получаем массив из информеров. Как этим пользоваться? Ещё проще, чем написать сам парсер. Приведу следующий пример вывода информеров на экран.
Отмечу, что данные получаются в кодировке UTF-8. Если надо преобразуйте их в нужную вам кодировку. Также рекомендую кэшировать эти данные, дабы не создавать лишних подозрений и не нарваться на блокировку по тому же IP. Я же говорил, что мне есть, что вам рассказать. Подписывайтесь! Продолжим.
Как вы видите, в данном примере, тег
Сама же картинка с флагами доступна по адресу:
Бесплатно скачать информер Евро 2012 в качестве примера для личного ознакомления вы можете по этой ссылке.
И так, сейчас многие пытаются нажиться на Евро 2012. Сайты публикуют новости, ставят различные информеры и т.д. Вот только найти нормальный и бесплатный информер Евро 2012 проблематично. Ну, действительно, кто же вам нашару будет выдавать такую информацию. Нашару не дату, но кто их спрашивает?
Лично я нашёл только один простенький и более-менее интересный информер обратного отсчёта до начала трансляций футбольных баталий Евро 2012 на портале UA-Traveling.ua. И то он полностью JavaScript и на английском. Если всё же интересно, получить его HTML-код можно на этой странице. Вот как могут выглядеть такие информеры:
Ну да ладно. Всё это детский лепет. Куда как интересней разместить на своём сайте более подробную информацию о баталиях Евро 2012. Не так ди? Я решил не мелочиться и посмотреть, откуда эту информацию берёт Яндекс для своего проекта Чемпионат Европы по футболу 2012. Там к слову явные глюки с распознанием региона. У меня почему-то на белорусскую версию перекинуло. Или так и задумывалось? Ну да не суть важно.
Главное, что информацию они берут на сайте Sports.ru. Это один из источников. Я зашёл на этот сайт и заметил, что информер «Статистика» с таблицей, результатами и календарём у них подгружает динамически. Жаль, что не в виде XML или json, но тем не менее. Главное, что нужную информацию вы можете полeчить по адресу:
sports.ru/stat/gadget/rexona/{tournament_id}.html?sport_id={sport_id}&is_full=0Значения {sport_id} и {tournament_id} вы найдёте в соответствующих списках. Я же остановлюсь на таком виде спорта как футбол и статистике Евро-2012. Этот информер имеет следующий URL адрес:
sports.ru/stat/gadget/rexona/544.html?sport_id=208&is_full=0Как вы можете убедиться, нам возвращается HTML фрагмент. Понятно, я не стал заниматься детальным разбором этих данных, просто вырезал
<table>
таблиц, результатов и календаря. В них я убрал все ссылки и теги <noindex>
. В результате получилось три бесплатных информера Евро 2012.PHP парсер информера Евро 2012
Первое, что нам понадобится, это конечно функция считывания упомянутых данных под прикрытием обращения браузера. Другими словами, для этих целей я использовал cURL. А вот и сама функция:function get_curl_contents($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100416 Mandriva Linux/1.9.2.3-0.2mdv2010.0 (2010.0) Firefox/3.6.3');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
return curl_exec($ch);
}
Ну а теперь функция парсера информера Евро 2012.
function get_free_euro_2012_informers() {
$url = 'http://www.sports.ru/stat/gadget/rexona/544.html?sport_id=208&is_full=0';
$informers = array();
$contents_informers = get_curl_contents($url);
if ( preg_match_all("#<table class=\"stat-table(.*)?\" cellpadding=\"\d\" cellspacing=\"\d\">(.*)<\/table>#isUm", $contents_informers, $m) ) { // Таблица
$informers = $m[0];
foreach ( $informers as $k=>$v ) {
$v = preg_replace("/<a[^>]*>(.*)<\/a>/iU","$1", $v); // убираем тег <a>
$v = preg_replace("/<[\/\!]*?noindex[^>]*>/iU","", $v); // убираем тег <noindex>
$informers[$k] = $v;
}
}
return $informers;
}
Как вы видите, ничего сложного здесь нет. Вытаскиваем таблицы, обрабатываем и получаем массив из информеров. Как этим пользоваться? Ещё проще, чем написать сам парсер. Приведу следующий пример вывода информеров на экран.
$informers = get_free_euro_2012_informers();
echo '<h1>Футбол Евро-2012</h1>';
echo '<p><b>Таблица</b></p>' . $informers[0];
echo '<p><b>Результаты</b></p>' . $informers[1];
echo '<p><b>Календарь</b></p>' . $informers[2];
Отмечу, что данные получаются в кодировке UTF-8. Если надо преобразуйте их в нужную вам кодировку. Также рекомендую кэшировать эти данные, дабы не создавать лишних подозрений и не нарваться на блокировку по тому же IP. Я же говорил, что мне есть, что вам рассказать. Подписывайтесь! Продолжим.
Оформляем информер Евро 2012
В полученном HTML коде я оставил все CSS классы. Сделано это для того, чтобы вы могли оформить свой информер надлежащим образом. Я не буду вдаваться в детали. Коротко остановлюсь лишь на такой штуке как флаги. В коде они представлены, к примеру, так:<i class="flag-s flag-1285" title="Россия" alt="Россия"></i>
Как вы видите, в данном примере, тег
<i>
содержит CSS классы flag-s
и flag-1285
. Лично я рекомендую сразу скачать готовый CSS файл с сайта Sports.ru. Доступен он по адресу:s5o.ru/common/css/flags.cssНет, я ничего не напутал, это их домен и нужный CSS файл находится именно по этому адресу. В нём вам нужна исправить всего лишь первую строчку, прописав надлежащий путь к картинке с флагами (выделено жирным).
.flag-s {
background-image: url(i/flags-sprite.png);
background-repeat:no-repeat;
display:inline-block;
width: 16px;
height: 12px;
}
Сама же картинка с флагами доступна по адресу:
s5o.ru/common/css/i/flags-sprite.pngПо крайней мере, на момент написания поста всё так и было, вполне себе хорошо работало и т.д.
Послесловие
Напоследок хочу вас предупредить, что этот парсер представлен только в виде примера. Я не несу ответственности за последствия его использования. Вы делаете всё на свой страх и риск. Более того, я не обязуюсь кого-то консультировать по вопросам связанным с этим парсером, что-то править и исправлять. Нет, конечно, в комментариях я отвечу, просто для расстановки всех точек над «ё» упомянул. В общем, вы предупреждены. Удачи!Бесплатно скачать информер Евро 2012 в качестве примера для личного ознакомления вы можете по этой ссылке.
8 комментариев:
Константин, поражаюсь твоему трудолюбию. Ведь каждый день авторская статья, а то и две. Причем ведь у тебя еще проекты есть. Ты тайм - менеджементом пользуешься?
Отправить комментарий