Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   трансляция чужих данных у себя на сайте (https://javascript.ru/forum/misc/45079-translyaciya-chuzhikh-dannykh-u-sebya-na-sajjte.html)

OleG54extra 13.02.2014 16:18

трансляция чужих данных у себя на сайте
 
Здравствуйте! Спасибо, что заглянули, надеюсь вы мне поможете.

Суть проблемы в том, что я мало знаком с java. Мне нужно отображать данные в таблице с одного сайта (биржи) на своем. Т.е допустим есть таблица по росту и падению стоимости на дочернем, а мне надо чтобы она была и у меня т.е при обновлении там сразу же обновлялись данные и у меня. Htmlка не в помощь, так как копирует текстово. :help:

skrudjmakdak 13.02.2014 16:21

Цитата:

Сообщение от OleG54extra (Сообщение 297484)
я мало знаком с java.

java и javascript - это разное.
а тот сайт отдает данные? например в виде json или xml?

OleG54extra 13.02.2014 16:28

я не очень разбираюсь ну вот таблица http://www.otcmarkets.com/market-act...ent-otc-market

OleG54extra 13.02.2014 16:30

умерла опять на время похоже там при наведении отображалось javascript novoid ()

skrudjmakdak 13.02.2014 16:43

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

1. делаешь ajax запрос на свой сайт;
2. твоя серверная часть в свою очередь дергают их страницу;
3. потом твоя серверная часть выкидывает все не нужное и возвращает на клиент результат

OleG54extra 13.02.2014 16:58

ок, хоть что-то. Спасибо.

рони 13.02.2014 18:09

OleG54extra,
указанная вами страница сама получает данные ввиде json и из них формирует таблицы :write: -- так что если знать чего запрашивать и как формировать то возможен вариант и без сервера.

Deff 13.02.2014 18:13

:) A фреймом не подходит ?

OleG54extra 13.02.2014 20:40

ок, тогда как узнать не подскажете?

OleG54extra 13.02.2014 20:43

вряд ли, нужно лишь на конкретной.

skrudjmakdak 13.02.2014 20:43

открываешь фаербаг (f12), вкладка network там и смотришь json'ы

в хроме даже фильтр есть, нажимаешь XHR.

OleG54extra 13.02.2014 21:07

в общем пожалуйста помогите получать эти данные себе на определенную страницу.

OleG54extra 13.02.2014 21:13

Вложений: 1
вот что получилось ошибка 404

skrudjmakdak 13.02.2014 22:09

вообщем см. напрямую у меня не пустило.. т.к. вообще нельзя дергать другой домен. из за безопасности, но тут где то была подобная тема, правда уже давно. вообщем у чувака получилось как то, но я не проверял его.. поэтому от себя лично ничего не скажу.

поэтому я дергал через свою серверную часть, вот пхп (имя пхп файла site.php):
<?php
$url = $_GET['url'];
echo file_get_contents($url);
?>


а вот реализация на js:
<html>
	<head>
		<title>example</title>
	</head>
	<body>
	<div>
		
	</div>
		<script>
function ajax(url)
	{
	var request = undefined;
	try
		{
		request = new ActiveXObject("Msxml2.XMLHTTP");
		}
	catch (e)
		{
		try
			{
			request = new ActiveXObject("Microsoft.XMLHTTP");
			}
		catch (e)
			{
			try
				{
				request = new XMLHttpRequest();
				}
			catch (e)
				{
				return false;
				}
			}
		}
	request.open('get', 'site.php?url=' + url, true);
	request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	request.onreadystatechange = function()
		{
		if (request.readyState == 4)
			{
			if (request.status == 200)
				{
				var data = eval(request.responseText);
				var div = document.querySelector('div');
				
				var records = data.records,
					len = records.length,
					i, k = [], m, r;
				
				for (i = 0; i < len; ++i)
					{
					r = records[i];
					m = new Array();
					m[0] = r.numOfQuotes;
					m[1] = r.numOfTrades;
					m[2] = r.price;
					k.push('<td>' + m.join('</td><td>') + '</td>');
					}
				
				div.innerHTML = '<table><tr>' + k.join('</tr><tr>') + '</tr></table>';
				}
			else
				console.log(request.status);
			}
		};
	request.send();
	}
ajax('http://www.otcmarkets.com/otciq/ajax/getTopWombatTrades.json');
		</script>
	</body>
</html>

OleG54extra 13.02.2014 22:24

хорошо, завтра разберусь.

Deff 13.02.2014 23:38

Цитата:

Сообщение от skrudjmakdak
поэтому я дергал через свою серверную часть, вот пхп (имя пхп файла site.php):

Тут вряд ли получиться таким простым кодом, если сам копируемый сайт имеет динамически подгружаемый контент, ибо нун осуществлять полное проксирование и выпрямлять все ссылки в скриптах и заменять все обычные ссылки на их сайт обращением к серву для перепарса данной страницы, карочь нун ставить прокси-сервер, и ток потом забирать- отдавать контент

Более быстрый вариант реализации(для меня, к примеру) в связке С++ эмулятор браузера + PHP , который забирает из эмулятора сгенеренный контент с того сайта в итоговом виде и отдаёт клиенту (но не факт что они лучше полного проксирования, да и то существуют защиты от второго варианта(например простое кодирование ссылки в скриптах Аякс запросов), а в первом - отсутствие на клиенте реакции на на некоторые события, если скрипты динамически- изменяемые

skrudjmakdak 14.02.2014 09:30

Deff, а я чет не понял почему не получится? у меня все шло, правда долговато ждал ответа. или пхп кэширует данные?

Deff 14.02.2014 15:33

skrudjmakdak,
к примеру на странице скрипт
$.get("test.php"); который и заполняет таблицы (обычно типичный вариант для запрошенного ТС, посколь базы таблиц часто меняются)
test.php - обращения к странице с офсайта, во первых его нун перепарсить в полную ссылку, во вторых даже перепарсенное не пройдет ибо требует cors или играй ток с запросами со своего домена

skrudjmakdak 14.02.2014 15:47

Цитата:

Сообщение от Deff (Сообщение 297695)
test.php - обращения к странице с офсайта

не к странице, а к json строке, которая итак готова. зачем ее перепарсивать?

рони 14.02.2014 16:47

так на всякий случай -- данный json находится в каталоге который запрещено посещать роботам.

skrudjmakdak 14.02.2014 17:23

ну а причем здесь роботы?

skrudjmakdak 14.02.2014 17:24

на сколько мне говорили, robots.txt нужен для поисковиков. чтобы не индескировали не нужное.. не?? я не прав??

Deff 14.02.2014 17:28

skrudjmakdak,
Тут просто нун реально поработать с живым примером, траблы всплывают,
Типично на первых страницах бирж и магазинов, таблиц спецификаций: какие-то ссылки или селекторы, или формы, которые либо уведут в никуда, либо не вызовут никаких действий

рони 14.02.2014 17:34

skrudjmakdak,
например этому http://developer.yahoo.com/ сервису откажут

skrudjmakdak 14.02.2014 17:40

т.е. ты хочешь сказать, что они могут закрыть сервис? именно для него

рони 14.02.2014 17:49

skrudjmakdak,
это ответ если запросить как обычный файл c сервиса яхо
Цитата:

"error": "Redirected to a robots.txt restricted URL: http://www.otcmarkets.com/otciq/ajax/getTopWombatTrades.json"
это как json
Цитата:

"error": "Invalid JSON document http://www.otcmarkets.com/otciq/ajax/getTopWombatTrades.json",

skrudjmakdak 14.02.2014 17:55

а как ты посм. http://www.otcmarkets.com/robots.tst не открывает.. или подругому?

рони 14.02.2014 17:57

skrudjmakdak,
непонял ваш сокр.

skrudjmakdak 14.02.2014 17:58

как посмотрел?

рони 14.02.2014 18:05

skrudjmakdak,
так
это проверочная консоль - тестить возможности сервиса

skrudjmakdak 14.02.2014 18:09

так и у яндекса, гугла есть такой сервис? допустим у меня есть свой сайт.. как мне узнать?

рони 14.02.2014 18:13

Цитата:

Сообщение от skrudjmakdak
как мне узнать?

что узнать?

skrudjmakdak 14.02.2014 18:16

открыт ли доступ.. или что то туплю?

рони 14.02.2014 18:21

skrudjmakdak,
я пас -- спрашивайте у гугла -- откуда про яхо тема


Часовой пояс GMT +3, время: 16:44.