# Парсер курсов валют (Парсеры 2.0)

{% embed url="<https://www.youtube.com/watch?v=KJieFpov2JE>" %}

{% hint style="warning" %}
Для автоматического обновления курсов валют **обязательно** создайте [задание Cron](https://premium.gitbook.io/rukovodstvo-polzovatelya/osnovnye-nastroiki/faq/kak-sozdat-zadanie-cron-na-servere) на сервере, используя ссылку из раздела "**Парсеры 2.0**" — "**Настройки**"

<img src="/files/rqenJFflrTAGs1GCX9Ev" alt="" data-size="original">
{% endhint %}

{% hint style="warning" %}
Хеш для ссылки для задания cron задается в файле **`wp-content/plugins/premiumbox/userdata.php`**

<img src="/files/3Os0JAvzSzGHLqVaPAtI" alt="" data-size="original"><img src="/files/5dI7SOVimJPRhO8T1wCY" alt="" data-size="original">
{% endhint %}

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

## Настройки парсера

<figure><img src="/files/FLXjc21gAtByI8mlu7Jp" alt="" width="527"><figcaption></figcaption></figure>

* Сортировка:\
  • **вручную** — ручная сортировка курсов согласно разделу "**Парсеры 2.0**" ➔ "**Сортировка курсов**"\
  • **по названию** — курсы будут отсортированы по названию автоматически
* **Тип парсера**:\
  • **многопоточный** — позволяет запустить несколько потоков выполнения, каждый из которых будет обрабатывать отдельный источник\
  • **CURL** — может получать данные только по одному запросу в каждый момент времени и может быть более удобным и простым в использовании для получения небольшого количества данных
* **Логирование парсинга**:\
  • **Нет** — парсинг курсов от источников не будет логироваться\
  • **Да** — будут логироваться все запросы и ответы от источников курсов\
  • **Только ошибки** — будут логироваться только ошибки получения курсов
* **Таймаут (сек.)** — это время в течение которого сайт ожидает ответа от стороннего сервиса. Если ответ не будет получен в заданное время, то сайт продолжит свою работу далее, оставшись без ответа. Если время не задано или равно 0, то действует стандартный таймаут в 20 секунд. Универсального значения для таймаута нет, потому что он зависит от скорости работы конкретного сервиса.
* **Дата обновления** — дата и время последнего обновления парсера
* **Удалять старые данные** — удалять старые курсы перед запуском парсера:\
  • **Нет**\
  • **Да**
* **Источники курсов** — все доступные источники для парсинга курсов

{% hint style="info" %}
При необходимости вы можете парсить собственный файл с курсами валют или xml-файл другого обменника для того, чтобы использовать эти курсы в других формулах.\
Для этого откройте раздел "**Парсеры 2.0**" ➔ "**Добавить сайт**" и в новом окне укажите ссылку на ваш XML-файл с курсами в поле "**Адрес XML файла**"\
![](/files/kyEBuxrB9uA3m9BR906W)\
После этого поставьте галочку напротив добавленного источника

![](/files/nc08T1ZUuLj052WZUvH2)\
Чтобы активировать работу парсера, в разделе "**Парсеры 2.0" → "Настройки"** установите галочки напротив названия источника, который вы хотите использовать. После этого запустите задачу Cron с этой же страницы.
{% endhint %}

При успешном обновлении курсов валют на открывшейся странице вы увидите слово "**Выполнено**".

Если этого не произошло или отображается другой текст — загляните в [раздел "**Лог парсеров**"](https://premium.gitbook.io/rukovodstvo-polzovatelya/navigaciya/nastroiki/logirovanie/logi-parserov-2.0) (пункт "**Логирование парсинга**" в общих настройках должен быть предварительно включен) и прочтите полученные логи.

{% hint style="warning" %}
Если по одному или нескольким источникам не обновляются курсы валют или парсер не работает изначально, проверьте доступ к источнику данных с IP-адреса вашего сервера.

Если вы используете ISP Manager — перейдите в раздел "**Shell-клиент".**

<img src="/files/G1WTFZZYh3dKf3gOG9sK" alt="" data-size="original">

В открывшемся окне введите команду "`curl сылка для парсинга`".

В качестве примера проверим парсинг курсов от Garantex:

<img src="/files/SgporneHxoalmZqj7jU9" alt="" data-size="original">

Если в ответе отображаются курсы валют, значит источник доступен для вашего сервера. ![](/files/WBRfSneowftmUG4fJM3v)
{% endhint %}

{% hint style="info" %}
Для того, чтобы оперативно получать уведомления об ошибке парсинга курсов валют для устранения ошибки, вы можете настроить уведомления на [e-mail](https://premium.gitbook.io/rukovodstvo-polzovatelya/osnovnye-nastroiki/uvedomleniya-administratoram-i-polzovatelyam/uvedomleniya-po-e-mail) и в [Telegram](https://premium.gitbook.io/rukovodstvo-polzovatelya/osnovnye-nastroiki/uvedomleniya-administratoram-i-polzovatelyam/uvedomleniya-v-telegram).

<img src="/files/FozclkmG2PQ2udUlprQI" alt="" data-size="original"><img src="/files/IhCC2y2J5S2C1T4U4WYl" alt="" data-size="original">
{% endhint %}

## Курсы источников

В этом разделе будут отображаться все курсы валют, полученные от источников. Вы можете использовать отображаемые шорткоды из столбца "**Код**" для создания сложных курсов в разделе "**Курсы**".

<figure><img src="/files/1CdkQiDL5v9daM9GxrjZ" alt=""><figcaption></figcaption></figure>

Для удобства поиска конкретных данных вы можете воспользоваться фильтром по 3 условиям:

<figure><img src="/files/crA51zlwZf0O1umBN0Uz" alt=""><figcaption></figcaption></figure>

* **Источник** — отображать курсы валют только от выбранного источника
* **Валюта Отдаю** — отображать только пары, где в валюте "**Отдаю**" используется указанная в поле валюта
* **Валюта Получаю** — отображать только пары, где в валюте "**Получаю**" используется указанная в поле валюта

## Курсы

{% hint style="warning" %}
Для использования курсов в направлениях обмена, **необходимо** перенести в этот раздел выбранные курсы из разделе "**Парсеры 2.0**" ➔ "**Курсы источников**".

Только после переноса курсов, они станут доступны к выбору на вкладке "**Автокорректировка курса**" в настройках направления обмена, а также для автокорректировки курсов в Bestchange парсере.
{% endhint %}

Также в этом разделе вы можете создавать новые пары курсов. Используйте пары по умолчанию в качестве примера.

Вы можете комбинировать между собой курсы из раздела "Курсы источников", использовать десятичные дроби в формулах, а также использовать математические действия:\
• умножение — `[cbr_usdrub] * [bitfinex_bchusd_last_price]`\
• деление — `1 / [exmo_bchbtc_last_trade]`\
• вычитание — `[ecb_eurrub] - [cbr_eurrub]`\
• сложение — `[index_support] + 2`

Нажатие кнопки "**Копировать**" создаст копию валюты, на строке которой была нажата кнопка.

{% hint style="info" %}
Если у какого-либо курса в столбце "**Курс для Отдаю**" или "**Курс для Получаю**" отображается 0, значит используемый в полях "**Формула курса для Отдаю**" или "**Формула курса для Получаю**" шорткод недействительный — замените его.
{% endhint %}

<figure><img src="/files/Qq64zYhBOH9Kv1erVyhR" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Если нужного курса нет в разделе "**Парсеры 2.0**" ➔ "**Курсы источников**", перенесите в раздел "**Курсы**" обратный курс и используйте формулу **`1/[курс_валют]`**— в этом случае вы получите требуемый курс.
{% endhint %}

{% hint style="success" %}

#### Модуль "Конвертер"

Для быстрого переноса курсов от конкретного источника из раздела "**Источники курсов**" в "**Курсы**" вы можете использовать модуль "**Конвертер**".

<img src="/files/ErtVn7GjNKgqNlo7mctC" alt="" data-size="original">

Выберите из выпадающего списка источник курсов валют, а в поле "**Валюты**" укажите через запятую [коды валют](https://www.bestchange.ru/wiki/rates.html), для которых вы хотите создать валютные пары и нажмите "**Применить**"

<img src="/files/bAj29fHMWMjZoDr7dRPr" alt="" data-size="original">

В разделе "**Курсы**" будут созданы пары, где перечисленные списком валюты будут находиться на стороне "**Отдаю**").

<img src="/files/pUHfoOuUclVKa7Jrz6Qv" alt="" data-size="original">

Для того, чтобы создать все доступные курсы с перечисленными валютами — поставьте галочку "**Обратный курс**" перед нажатием "**Применить**".

<img src="/files/yXPnxpWdKUIcf4q4nCYZ" alt="" data-size="original">

Повторите действия для каждого источника, курсы которого вы хотите использовать.
{% endhint %}

## Пользовательские коэффициенты

<figure><img src="/files/zMsCYON8NpAxyV7RZTKJ" alt=""><figcaption></figcaption></figure>

В этом разделе вы можете добавлять коэффициенты, которые также можно применять в формулах в разделе "**Курсы**". Опция будет полезна тем, кто использует плавающие коэффициенты в нескольких направлениях — вместо указания конкретного значения вы можете использовать в формулах созданный шорткод и менять его значение без необходимости вносить правки в разделе "**Курсы**".

Начиная с версии 2.7, настройка пользовательских коэффициентов перенесена в отдельный раздел.

<figure><img src="/files/oYR2Ut5C0Zz2U4M4ROWy" alt=""><figcaption><p>Раздел в сайдбаре</p></figcaption></figure>

<figure><img src="/files/rpX1LBEGTfa6O0c3myXd" alt="" width="449"><figcaption><p>Настройки коэффициента</p></figcaption></figure>

Имя индекса — желаемое название, которое будет использоваться в формулах как шорткод\
Формула значения — в поле указывается число или математическая формула\
Значение индекса — значение для формулы, указанной выше (если указана формула)\
Тип индекса:\
• Подстановка формулы в курс

<figure><img src="/files/iytPRM0DtsbF0O2VFvmA" alt=""><figcaption><p>Формула будет подставляться напрямую в курс без скобок, а затем вычисляться само значение курса</p></figcaption></figure>

• Значение индекса

<figure><img src="/files/rdRgtJuJnDqjL1KmFJ99" alt=""><figcaption><p>Сначала будет вычислено значение коэффициента, а затем оно будет подставляться в курс</p></figcaption></figure>

Комментарий — поле для ваших заметок

## Сайты (парсинг xml-файлов)

Вы можете парсить открытые xml-файлы других обменников, если вам известен их url (часто это `https://домен/request-exportxml.xml`). Для использования опции активируйте модуль "**Парсинг XML файлов с курсами обменников**" в разделе "**Модули**".

<figure><img src="/files/moOxTgFhhrMjljKivvYJ" alt=""><figcaption></figcaption></figure>

После этого добавьте новый источник в разделе "**Парсеры 2.0**" ➔ "**Добавить сайт**". В открывшемся окне укажите название источника на свое усмотрение и ссылку на файл с курсами.

<figure><img src="/files/ljtZBG1HFX6buFpjSBC0" alt="" width="477"><figcaption></figcaption></figure>

После сохранения источника перейдите в раздел "**Парсеры 2.0**" ➔ "**Настройки**" и активируйте добавленный источник.

<figure><img src="/files/r5cvqF1oj8H4H0ijmzkM" alt="" width="435"><figcaption></figcaption></figure>

После этого данные от источника появятся в разделе "**Парсеры 2.0**" ➔ "**Курсы источников**"

<figure><img src="/files/CX9TLh4KFZa6yUucPvLC" alt=""><figcaption></figcaption></figure>

## Автоматическое обновление курсов

Для автоматического обновления курсов, необходимо настроить [планировщик задач (cron) на сервере](https://premium.gitbook.io/main/osnovnye-nastroiki/faq/kak-sozdat-zadanie-cron-na-servere). В разделе "**Парсеры 2.0"** ➔ **"Настройки**" в начале страницы выводится ссылка "**Cron URL для обновления курсов ЦБ и криптовалют**", которую необходимо добавить в планировщике задач (cron) на сервере.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://premium.gitbook.io/main/osnovnye-nastroiki/valyuty-i-napravleniya-obmena/kursy-valyut/parser-kursov-valyut-parsery-2.0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
