• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP8266 Счетчик фолловеров Instagram

anthony3d

New member
Уважаемое сообщество!

С вашего позволения продолжу ламерские вопросы по ESP8266.

Нужно сделать апаратный счетчик фолловеров Инстаграм на ESP и TM1637.
И если хард вопросов не вызывает, то в софте — затык.
InstagramStats — основная на сегодняшний день библиотека по работе с юзер-данными Инстаграм, почему-то у меня не выдает результата. Демонстрационный пример возвращает 0 (ноль).
Инстаграм, конечно, маниакально борется с автоматизированными средствами накрутки, но прятать счетчик фолловеров, думаю,— уж слишком!

У кого-нибудь вообще это работает?
 

NeoroN

Member
на питоне:
Код:
from urllib.request import urlopen
data = urlopen("http://instagram.com/asus/").read()
start = data.index(b'"userInteractionCount":"')+24
end = data.index(b'"',start)
followers = str(data[start:end],"utf-8")
на микропитоне:
Код:
import usocket
account = "asus"
ai = usocket.getaddrinfo("instagram.com", 80, 0, usocket.SOCK_STREAM)
ai = ai[0]
s = usocket.socket(ai[0], ai[1], ai[2])
count = 0
try:
    s.connect(ai[-1])
    s.write(b"GET /%s/ HTTP/1.0\r\n" % account)
    s.write(b"Host: instagram.com\r\n")
    s.write(b"\r\n")
    l = ""
    while l:
        l = s.readline()
        s = l.find(b"userInteractionCount")
        if s > -1:
            e = l.find(b'"',s+23)
            if e > -1:
                count = int(str(l[s+23:e],"utf-8"))
                break
    s.close()
except OSError:
    s.close()
 

anthony3d

New member
Разобрался с библиотекой InstagramStats
Оказывается, она работает, но только если выставить побольше тайм-аут.
Лезем прямо в InstagramStats.cpp, находим
now = millis();
while (millis() - now < 3000) {
и меняем 3000 на 30000 смело. Если и так выдает нули — еще выше.
У меня с 30000 возвращает нуль раз в 4-5 замеров. Я его программно отбрасываю.
 
Сверху Снизу