Skip to content

Бандл парсинга Инстаграма посредством Instagram RapidAPI

Notifications You must be signed in to change notification settings

ProklUng/instagram.parser.bundle

Repository files navigation

Бандл парсинга Инстаграма посредством Instagram RapidAPI

Решение частной задачи, показавшее некоторую степень универсальности.

Используется api. В качестве дополнения приложен механизм генерации фикстур с помощью консольных команд.

Зачем?

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

Установка

composer.json:

    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/proklung/instagram.parser.bundle"
        }
    ]
composer require proklung/instagram-parser-bundle

Пример конфигурации бандла

instagram_parser_rapid_api:
  defaults:
    enabled: true

  #####################################
  # Настройки кэширования. Опционально
  #####################################
  cache_path: 'cache/s1/instagram-parser'
  cache_ttl: 86400
  cache_user_data_ttl: 31536000
  cacher_service: 'app.cache.adapter.redis' # Любой кэшер, реализующий Symfony\Contracts\Cache\CacheInterface

  ##############
  # Мок запроса
  ##############
  mock: false
  # Путь к фикстуре запроса картинок.
  fixture_response_path: '/local/config/Fixture/response.txt'
  # Путь к фикстуре запроса данных пользователя.
  fixture_user_path: '/local/config/Fixture/user.txt'

  # Куда локально сохранять картинки из Инстаграма.
  path_image: '/upload/instagram'

  ###########################
  # Информация о пользователе
  ###########################

  # См. https://codeofaninja.com/tools/find-instagram-user-id/
  # Или запрос вида https://www.instagram.com/web/search/topsearch/?query=dertaglu (поле PK)
  # Или получение через UserInfoRetriever.
  instagram_user_id: 8440733461

  # Имя пользователя.
  instagram_user_name: user_instagra,

  ################
  # Параметры API
  ################

  # Ключ к https://rapidapi.com/restyler/api/instagram40
  rapid_api_key: 5466bdf907vvv430e9579da6a738p18854cjsnb789fb399aa0

Консольная команда

php bin/console make:instagram-fixtures exampleInstagramUserName

В результате положит две фикстуры (user.txt и response.txt) по адресам, указанным в ключах fixture_user_path и fixture_response_path бандла.