Как осуществить парсинг данных с сайта, созданного на WordPress?

У меня есть сайт, и я хочу парсить данные с различных ресурсов, обновляя их один раз в день. Я не нашёл подходящего модуля для этой задачи, поскольку мои навыки в программировании ограничены. Я пытался использовать разные "грабберы", но они копируют и создают статьи, что мне не нужно. <br/> Мне нужно извлекать только числовую информацию раз в сутки. <br/> Существует ли такой граббер, который позволяет указать конкретную точку на сайте для извлечения информации и привязать её к шорткоду?
  • 5 ноября 2024 г. 19:43
Ответы на вопрос 1
Да, существует несколько подходов для парсинга данных с сайтов на WordPress, особенно если вам нужно извлекать только числовую информацию. Вот некоторые рекомендации:

### 1. **Использование WP All Import / WP All Export**
Это один из популярных плагинов для импорта и экспорта данных в WordPress. Вы можете настроить его для извлечения данных с внешних ресурсов, и использовать шорткоды для их отображения на вашем сайте. Он имеет возможность работы с CSV и XML, но для парсинга HTML-страниц возможно потребуется комбинирование с другими инструментами.

### 2. **Параметры Cron для автоматизации**
Вы можете создать собственный скрипт на PHP, который будет выполнять парсинг данных. Например, используя библиотеку `cURL` для выполнения HTTP-запросов и `DOMDocument` или `SimpleXML` для работы с HTML или XML. Вы можете установить задачу Cron на вашем сервере, чтобы скрипт выполнялся раз в день.

### 3. **Использование плагина для парсинга:**
Некоторые плагины специально разработаны для парсинга данных с других сайтов. Например, вы можете рассмотреть следующие плагины:
- **WP Web Scraper**: Позволяет настроить парсинг определённых элементов прямо через интерфейс. Однако изучите, какие ограничения есть у бесплатной версии.
- **WP Scraper** или другие аналогичные плагины могут подойти, если вы настроите их для извлечения только нужных данных.

### 4. **Кастомный PHP код**
Если вы знакомы с базами данных и программированием, вы можете написать свой код для парсинга. Вот пример простого скрипта:

```php
function fetch_data() {
    $url = 'https://example.com/data'; // URL для парсинга
    $response = wp_remote_get($url); // Получаем данные

    if (is_wp_error($response)) {
        return;
    }

    $data = wp_remote_retrieve_body($response); // Получаем тело ответа
    preg_match('/<div class="specific-class">([0-9]+)<\/div>/', $data, $matches); // Регулярное выражение для извлечения числовой информации

    if ($matches) {
        update_option('parsed_data', $matches[1]); // Сохраняем данные в опции WordPress
    }
}

add_action('wp', 'fetch_data'); // Запускаем функцию при загрузке страницы
```

### 5. **Создание шорткода**
После того как данные будут сохранены в опции WordPress, вы сможете использовать шорткод для их отображения. Добавьте следующий код в файл `functions.php` вашей темы:

```php
function display_parsed_data() {
    return get_option('parsed_data');
}
add_shortcode('parsed_data', 'display_parsed_data');
```

Теперь вы можете вставить шорткод `[parsed_data]` в любом месте вашего контента, чтобы отобразить парсированные данные.

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