Надо вытянуть курсы валют с сайта.

seraph22

Создатель
Регистрация
22 Мар 2012
Сообщения
26
Реакции
17
Добрый день, требуется вытянуть курсы валют с этого сайта Для просмотра ссылки Войди или Зарегистрируйся , т.е. грубо говоря у меня есть некий сайт, на который я хочу получать курс валют для выбранного банка и отделения, но при этом показывался курс валют только для этого отделения, а не полный список банков и отделений.

Напрямую работать с банками через их API соответственно возможности нету, т.к. бОльшая часть банков свои API в открытый доступ не предоставляет, поэтому решил использовать этот сайт.

PS: искал у них на сайте как они собирают актуальные курсы валют, но так и не нашел как именно это реализовано =( В идеале, конечно, мне бы хотелось работать через промис с данными, но подойдут и другие варианты, спасибо.
 
Последнее редактирование:
Для просмотра ссылки Войди или Зарегистрируйся что-то похожее для Вордпресс. И Для просмотра ссылки Войди или Зарегистрируйся.
Это мне, к сожалению, не подходит, т.к. сайт у меня не на вордпрессе + этот скрипт на PHP, а я не использую PHP, мне нужен вариант на JS

На том сайте, куда я хочу получить данные нет CMS систем, грубо говоря это не сайт, а скорее одностраничное приложение на JS, которое будет выводить актуальный курс валют в зависимости от выбранного банка и его отделения.
 
Тогда смотрите здесь Для просмотра ссылки Войди или Зарегистрируйся
хмм, это наверное больше для тестирования подойдет, + XPath это по сути просто шаблон выборки, а не выборка + запрос, к тому же там помнится у XPath были траблы с IE какие то, да и в любом случае как ни крути, надо запрос через XHR отправлять дополнительно, что с XPath что без, и затем обрабатывать его.

Я думал просто, что есть какой то более элегантный способ что-ли. Если кто-то сталкивался с похожей ситуацией, то хотелось бы посмотреть на реализацию решения этой задачи, спасибо. Хотя мб я просто велосипед изобретаю и можно сделать все через XHR и не париться.
 
Можете чуть подробнее описать проблему ? Сейчас выглядит так что вы хотите делать кроссдоменный запрос (или JS у вас на бекенде тоже ?), разобрать регуляркой или любым другим решением таблицу и показать это.
У вас есть база отделений? к примеру если не Минск, а другой город, вы будете парсить другую ссылку ?
Возможно стоит взглянуть на эту страницу - Для просмотра ссылки Войди или Зарегистрируйся думаю что такие информеры проще распарсить, однако вас интересуют и отделения.
 
Можете чуть подробнее описать проблему ? Сейчас выглядит так что вы хотите делать кроссдоменный запрос (или JS у вас на бекенде тоже ?)
да, на бэкенде тоже JS, я пока делаю через XMLHttpRequest + cors proxy

разобрать регуляркой или любым другим решением таблицу и показать это.
да

У вас есть база отделений? к примеру если не Минск, а другой город, вы будете парсить другую ссылку ?
да, получается так

Возможно стоит взглянуть на эту страницу - Для просмотра ссылки Войди или Зарегистрируйся думаю что такие информеры проще распарсить, однако вас интересуют и отделения.
информеры отделения банков не показывают + мне будут нужны адреса банков(отделений)
 
в таком случае я бы рекомендовал организовать локальный кеш. хотя бы каждый день что бы обновлялся. лучше что бы несколько раз в день.
1. синхронизируете все данные у себя локально
2. делаете запрос в локальную базу

но вам будет чутка сложно идентифицировать отделения. т.к. в классах нет каких либо ID. единственное уникальное значение либо ссылка на отделение либо весь текст из первой ячейки целиком.

если делать без кеша то порядок такой.

1. пользователь выбрал город, банк и отделение
2. ваш скрипт загрузил html из ссылки города
3. (я не работал таким образом с ответом, но в jQuery можно было с ответом как с документом работать и искать блоки по селектору) там находим в таблице либо строку с банком либо отделением. обрабатываем как нам нужно - показываем результат

но в любом случае у вас должны быть какие либо идентификаторы банка и отделения что бы найти нужный селектор, можно попробовать ссылки либо по названию иконок. в случае с регуляркой будет несколько сложнее но суть та же.
вот очень простой пример кода как получить инфо из строки по банку но в ваш код нужно передать как минимум ссылку на страницу города - currency/minsk и идентификатор банка /bank/absolutbank
Код:
// елемент ссылка на страницу банка по селектору a[href="/bank/absolutbank"] в данном случае /bank/absolutbank есть ваш идентификатор
var b = $('.rates-table-sort a[href="/bank/absolutbank"]');
// вся строка по банку
var row = b.parents('tr');
// проходимся по всем колонкам в первой название банка далее курсы
$(row).find('td').each(function(i,e){
    console.log($(e).text());
});
скриншот результата - Для просмотра ссылки Войди или Зарегистрируйся

для отделений пишете код который принимает идентификатор отделения и так же само разбираете строку.
 
Назад
Сверху