[modInstagram] 1.2.0 - Instagram PHP Scraper и прокси



Всем привет!

Долгожданное обновление компонента. Что нового:

  • теперь используется библиотека Instagram PHP Scraper
  • два способа получения данных: парсинг страницы и JSON www.instagram.com/USER_NAME/?__a=1
  • авторизация по логину/паролю для закрытых аккаунтов (также может помочь, если заблокирован IP)
  • возможность использования прокси для обхода блокировки IP
  • вывод более 20 постов
Актуальная документация в modstore.

Новая версия уже в modstore: https://modstore.pro/packages/photos-and-files/modinstagram
Демо: https://demo.webone.pw/modinstagram/scraper/
Github: https://github.com/ig0r74/modInstagram/
Игорь Терентьев
16 февраля 2020, 12:15
modx.pro
479
+10

Комментарии: 33

Сергей
17 февраля 2020, 12:07
0
Добрый день!
Можно как то сохранять посты в базе данных? что бы все посты подтягивать из instragramm.
Алексей
17 февраля 2020, 19:05
0
Взял из демо код
{'!modInstagram' | snippet : [
    'limit' => 40,
    'accessToken' => false, // если токен указан в настройках, но хотите использовать Scraper
    'username' => 'ig0r74',
    'cachePrefix' => 'inst',
    'cacheTime' => 86400,
    'showLog' => true,
    ]}
Консоль админки: modInstagram scraper error: Account with this username does not exist
    Игорь Терентьев
    17 февраля 2020, 19:48
    +1
    Значит IP сервера заблокирован. Можно так проверить в консоли:

    <?php
    $response = file_get_contents('https://www.instagram.com/ig0r74/?__a=1');
    
    if ($http_response_header[0] != 'HTTP/1.1 200 OK') {
        print 'ERROR: ' . $http_response_header[0];
    }
    302 ошибка будет.

    Можно попробовать указать в системных настройках пароль от аккаунта. Или использовать прокси.
      Алексей
      18 февраля 2020, 11:15
      0
      Спасибо за ответ, в настройки написал логин и пароль.
      Вызов сниппета выглядит так
      {'!modInstagram' | snippet : 
              [
              'limit' => 40,
              'cachePrefix' => 'inst',
              'cacheTime' => 86400,
              'showLog' => true
              ]}
      На странице:
      Warning: Unsupported declare 'strict_types' in .../core/components/modinstagram/vendor/phpfastcache/phpfastcache/lib/Phpfastcache/Helper/Psr16Adapter.php on line 14
      
      Parse error: syntax error, unexpected '{', expecting identifier (T_STRING) in .../core/components/modinstagram/vendor/phpfastcache/phpfastcache/lib/Phpfastcache/Helper/Psr16Adapter.php on line 21
      Версия php 5.6
        Игорь Терентьев
        18 февраля 2020, 17:25
        +1
        Да, забыл указать когда пакет загружал, что минимум 7 версия нужна.
    Вячеслав
    18 февраля 2020, 20:40
    0
    Доброго времени.
    php 7.3
    [[!pdoPage?
                    &element=`modInstagram`
                    &accessToken=`false`
                    &username=`scrap_pandahome`
                    &password=`1111111111`
                    &fromJson=`true`
                    &cachePrefix=`inst`
                    &cacheTime=`3600`
                    &showLog=`true`
                    &tpl=`tpl.modInstagram.item`
                    &tplWrapper=`tpl.modInstagram.wrapper`
                    &limit=`12`
                    &maxId=`13872296`
                    &minId=`13872200`]]
    И вот такая ошибка в консоле:
    /core/components/modinstagram/model/modinstagram.class.php : 99) modInstagram scraper error: Something went wrong. Please report issue.
    Подскажите куда копать?
      Игорь Терентьев
      20 февраля 2020, 09:46
      0
      Привет, обновил библиотеку — сейчас более информативный текст ошибок.
      Уже залил в modstore.
      Игорь Терентьев
      20 февраля 2020, 09:49
      0
      Обновил библиотеку instagram-php-scraper до v0.9.4.
      — более информативные сообщения об ошибках
      — теперь limit работает для fromJson
      — также в modstore указал минимальную версию php 7.0
        Вячеслав
        20 февраля 2020, 15:50
        0
        Приветствую!
        Обновился и все же:
        core/components/modinstagram/model/modinstagram.class.php : 99) modInstagram scraper error: Something went wrong. Please report issue.
        php 7.3
        modinstagram 1.2.1-beta
        Код чанка тот же.
          Игорь Терентьев
          21 февраля 2020, 15:48
          0
          Сори, в спешке немного не доработал. Обновись до 1.2.2 — там будут подробные сообщения об ошибках.
            Вячеслав
            21 февраля 2020, 20:44
            0
            core/components/modinstagram/model/modinstagram.class.php: 104) modInstagram Scraper error: InstagramScraper\Exception\InstagramAuthException 'Something went wrong. Please report issue.' (code: 400) in core/components/modinstagram/vendor/raiym/instagram-php-scraper/src/InstagramScraper/Instagram.php(1460)
              Игорь Терентьев
              26 февраля 2020, 18:41
              0
              А тебе на почту не приходит письмо от инсты с сообщением о подозрительной попытке входа?
                Вячеслав
                26 февраля 2020, 18:54
                0
                Приходят. Пришлось отключить modinstagramm пока не будет решения.
                  Анастасия
                  10 марта 2020, 22:55
                  0
                  Получилось решить? У меня тоже не грузятся фотки, пишет, что подозрительная попытка входа
                    Вячеслав
                    10 марта 2020, 22:57
                    0
                    Нет. Жду от автора помощи. Тоже постоянные сообщения о подозрительной попытке входа.
        Саша Туманов
        26 февраля 2020, 14:43
        0
        А в каких случая надо пароль передавать?
        И еще, у вас в одних примерах указано
        &username=``
        &password=``
        а в других
        &miUsername=``
        &miPassword=``
        Как, все-таки правильно и на что это влияет?
        Еще заметил, что если указываешь источник — json, то в чанке вывода перестает работать {$image_low_resolution}.
          Игорь Терентьев
          26 февраля 2020, 18:39
          0
          Пароль нужен, если ip сервера заблокирован инстаграмом.
          Параметры username и password могут перезаписываться одноименными системными настройками. Лучше использовать miUsername, поддержку username оставил для обратной совместимости.
          По поводу {$image_low_resolution} посмотрю, как время будет. Спасибо.
            Саша Туманов
            26 февраля 2020, 19:35
            0
            Это еще не все )
            Периодически компонент перестает выводить ленту, а вместо этого пишет в общий error.log такое
            [2020-02-26 17:59:28] (ERROR @ /var/www/vhosts/h-74422.kz/httpdocs/core/components/modinstagram/model/modinstagram.class.php : 104) modInstagram Scraper error: InstagramScraper\Exception\InstagramException 'Response code is 429. Body: <!DOCTYPE html> ... </html>
             Something went wrong. Please report issue.' (code: 429) in /var/www/vhosts/h-74422.kz/httpdocs/core/components/modinstagram/vendor/raiym/instagram-php-scraper/src/InstagramScraper/Instagram.php(486)
            [2020-02-26 18:03:54] (ERROR @ /var/www/vhosts/h-74422.kz/httpdocs/core/components/modinstagram/model/modinstagram.class.php : 104) modInstagram Scraper error: InstagramScraper\Exception\InstagramException 'Response code is 429. Body: <!DOCTYPE html>
            [2020-02-26 21:47:54] (ERROR @ /var/www/vhosts/h-74422.kz/httpdocs/core/components/modinstagram/model/modinstagram.class.php : 104) modInstagram Scraper error: InstagramScraper\Exception\InstagramException 'Response code is 429. Body: <!DOCTYPE html>
            Это бы пофиг, на самом деле, но между тегами
            <!DOCTYPE html> ... </html>
            в лог пишется тело странички ошибки инстаграм. Со ссылками, стилями и скриптами естественно. Когда я в первый раз заподозрил неладное и полез смотреть — размер лога уже приближался к 200 мб ))
          Анастасия
          09 марта 2020, 14:09
          0
          В настройках указала логин и пароль, но всё равно не работает. Если в вызове сниппета прописать — тоже не работает. Подскажите, пожалуйста, в чем может быть проблема?
            Анастасия
            10 марта 2020, 11:04
            0
            В самом инстаграме появляется окно с сообщением о подозрительном входе, что кто-то пытался зайти в а
            Денис
            11 марта 2020, 15:21
            0
            Не запускается без токена, логин и пароль указаны в системных настройках, в логах ошибка
            [[!modInstagram?
                &limit=`6`
                &fromJson=`1`
                &showLog=`1`
            ]]
            [2020-03-11 15:16:57] (ERROR @ /home/c/cp04792/gbk/core/components/modinstagram/model/modinstagram.class.php : 105) modInstagram Scraper error: InstagramScraper\Exception\InstagramAuthException 'Something went wrong. Please report issue.' (code: 400) in /home/c/cp04792/gbk/core/components/modinstagram/vendor/raiym/instagram-php-scraper/src/InstagramScraper/Instagram.php(1460)
              Станислав
              15 марта 2020, 21:41
              0
              та же ошибка, перестал работать инстаграм
                Саша Туманов
                18 марта 2020, 13:29
                0
                Да, не работает с той же ошибкой
                [2020-03-18 16:21:45] (ERROR @ /var/www/vhosts/h-74422.kz/httpdocs/core/components/modinstagram/model/modinstagram.class.php : 105) modInstagram Scraper error: InstagramScraper\Exception\InstagramAuthException 'Something went wrong. Please report issue.' (code: 403) in /var/www/vhosts/h-74422.kz/httpdocs/core/components/modinstagram/vendor/raiym/instagram-php-scraper/src/InstagramScraper/Instagram.php(1460)
                  Игорь Терентьев
                  18 марта 2020, 17:28
                  0
                  Всем привет, у кого появляется подобная ошибка «Something went wrong. Please report issue.» — скорее всего IP сервера в черном списке инстаграма. Для начала можно попробовать указать пароль, если не помогло — то только использовать прокси.
                    Саша Туманов
                    18 марта 2020, 18:55
                    0
                    Здравствуйте! Теперь понятно в чем дело. А как можно использовать прокси? Компонент это умеет?
                    Stan Ezersky
                    19 марта 2020, 12:07
                    0
                    del
                      Игорь Терентьев
                      19 марта 2020, 12:11
                      0
                      Привет, попробуй укажи имя пользователя в вызове сниппета, параметр miUsername.
                        Stan Ezersky
                        19 марта 2020, 12:13
                        0
                        Спасибо, сниппет изменил
                      Андрей
                      Вчера в 16:26
                      0
                      Здравствуйте. Получилось у кого авторизоваться с помощью логина и пароля? У меня ошибка «Something went wrong. Please report issue» и письма от инстаграм на почту о подозрительной попытке авторизации. Нужно обязательно использовать прокси? Как это сделать?
                        Станислав
                        Вчера в 20:02
                        0
                        мы перешли на другой сниппет, все заработало
                          Андрей
                          Вчера в 20:44
                          0
                          Не подскажете — какой именно?)
                            Андрей
                            Сегодня в 00:11
                            0
                            Да. Расскажите. Я обновил modinstagram до последней версии.
                          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                          33