Грабер котировок

Статус
В этой теме нельзя размещать новые ответы.

Trial

Участник
Регистрация
27 Май 2008
Сообщения
175
Реакции
8
Ищу грабер котировок и курсов валют с
(смотрите в правой колонке)
вот приблизительный вид того что я хотел бы получить
 

Вложения

  • primer.gif
    primer.gif
    10,7 KB · Просмотры: 15
А загнать весь блок в ноиндекс и нофолоу?
Или тебя напрягает не обилие внешних ссылок, а просто факт присутствия их на "сайт-конкурент" по тематике?

Да все информеры вставляются через Джава скрипт. так что они и так не индексируються, а вот пользователи по ним гарантировано преходить будут т.к. там есть в низу информера название проекта и каждый пункт информера тоже ссылка (пример "курс USD" - это сылка)

Добавлено через 12 минут
Из меня знаток PHP совершено не какой, но пердполагаю что это можно сделать преблизительно вот таким образом
PHP:
<?php 
//занесет строки файла в масив
$lines = file('http://www.rbc.ru/');

//а здесь тупо выведет номер нужных мне строк с очисткой от HTML
echo strip_tags($lines[630]);

?>
но вот тут проблема. Я так полагаю, что количество строк на сайте меняется каждый день и следовательно у меня будет выводиться белеберда хотя сейчас вроде выводит нужное.
Может кто есть оптный, поможет ведь скрип то не сложный, а пригодился бы многим я думаю, да и нет таких вроде еще уникальность какая не какая.
 
Вот на скорую руку написал по твоей идее, это конечно не самая лучшая реализация, но думаю с пивом сойдет...

PHP:
//искомый контент заключен в контейнер с id="rateContainer"
//вырезаем из кода страницы содержимое, заключенное в этом контейнере
$b_tag = '<table width=100% class="rate">'; //берем контент отсюда 
$e_tag = "</table>";	  //до сюда
$page = file_get_contents("http://www.rbc.ru/");
$begin= strpos ($page, $b_tag);
$page=substr($page,$begin);
$end= strpos ($page, $e_tag);
$page=substr($page,0,$end);
//контент вырезали, остается удалить все ссылки
preg_match_all('/(href=")(.*?)(")/i',$page,$matches);
//вывод результата:
echo preg_replace('/(href=")(.*?)(")/i', '', $page);
//зы, в результате остаются стили источника, поэтому не забудьте включить в свой .css нужные стили,  
//либо замените с помощью того же  preg_replace строки типа div class="indexes green" на свои стили
 
  • Нравится
Реакции: spa
Спасибо за помощь, но как я понимаю при таком раскладе страница RBC.ru загружаются полностью со всей графикой и всем содержимым, а потом обрабатывается скриптом и выводит нужную информацию (т.е. каждый раз пользователи будут загружать вместо одной страницы две - поправьте меня если я не прав). Дак вот нельзя ли сделать так чтоб смачивание (соединение с rbc.ru) было только раз в 30мин. , а во всех остальных случаях данные (те которые обработал скрипт) брались скажем из файла в котором они хранятся с предыдущего соединения т.е. что то на типо кэширования.
Помогите кто может пожалуйста.
 
  • Заблокирован
  • #6
Trial, пользователь получает информацию, только когда обновляет твою страницу.
При этом он загружает всего 3Кб кода (2Кб - html и 1Кб - widget_cbr.xml).
Можешь сделать не сквозной инклюдинг, а только на главной, как на РБК.
Тогда пользователь будет получать эти 3Кб кода, только когда заходит на главную.

Можешь сам проверить: почистить кэш браузера, потом выполнить PHP-код и в кэше у тебя появятся всего два файла.
Так что весь сайт РБК грузить не придется.;)
 
Я немного не так выразился скрипт вот этой
PHP:
$page = file_get_contents("http://www.rbc.ru/"); // контент берем с этой страницы
строкой загружает на серветр где находиться сайт всю страницу целиком и там эту страницу обрабатывает, а пользователю отдает нужную инфу ну если он для каждого раза будет загружать на сервер эту страницу целиком не будет тогда от этого сильно тормозить та страница на которой выводиться эта инфа? Мне просто хочется болие подробно разобраться во всем этом, а не тупо поставить и забыть.

И еще подскажите как из переменной $page (в ее последнем варианте т.е. с обработанными данными) сделать масив и чтоб каждый инекс масива был равен номеру строки (т.е. $a[0] //это срока первая) какой функцыей можно энто сделать
 
И еще подскажите как из переменной $page (в ее последнем варианте т.е. с обработанными данными) сделать масив и чтоб каждый инекс масива был равен номеру строки (т.е. $a[0] //это срока первая) какой функцыей можно энто сделать

А зачем тебе такое нужно, если не секрет?
Вот так можно разбить по строчкам:

PHP:
$rows = explode("\n", $page);
print_r ($rows);//вывод всего массива
/*Резал типа
    [0] => <table width=100% class="rate">
    [1] => 
    [2] => <TR>
    [3] => <TD width=50% nowrap="nowrap"><b>Курсы валют на&nbsp;</b></TD>
    [4] => <td width=10%><b>24.07</b></td>
    [5] => <TD align=right width=20%><B>Спрос</B></TD>
    [6] => <TD align=right width=20%><B>Предл.</B></TD>
    [7] => </TR>
    ....................
*/

Или можно разбить по определенному элементу, например по </TR> или по </TD>
PHP:
$rows = explode("</TR>", $page);
print_r ($rows);//вывод всего массива
/*Резалт
[0] => <table width=100% class="rate">
<TR>
<TD width=50% nowrap="nowrap"><b>Курсы валют на&nbsp;</b></TD>
<td width=10%><b>24.07</b></td>
<TD align=right width=20%><B>Спрос</B></TD>
<TD align=right width=20%><B>Предл.</B></TD>

[1] => 
<TR>
<TD><div class="indexes green"><i></i><span><A HREF="http://www.rbc.ru/cash/">Нал. USD</A></span></div>
</TD>
<TD>23:17</TD>
<TD align=right>23.227</TD>
<TD align=right>23.339</TD>
.....................
*/
 
Нет не секрет.
Из этого можно сделать много блоков типо один выводит курсы валют, другой катировки брать просто нужную сроку и все.
А вообще, можно сделат много информеров (чтоб любой желающий мог поставить к себе на сайт путем JS и ему хорошо и на мой сайт +1 ссылка).
 
половина текста выводится ??????????.

Поставила этот код на страницу, так половина текста выводится ??????????.

Как с этим бороться?

И страница, кстати, намного дольше грузится.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху