Како преузети податке са Инстаграма користећи Питхон

Инстаграм је једна од највећих светских мрежа друштвених медија, са око 1,21 милијарду корисника од 2021. године, или око 28 одсто интернета, наводи Статиста.

Овај чланак је водич о томе како програмски преузети Инстаграм податке са профила користећи Питхон на два начина. Први метод је преузимање медија помоћу Инсталоадер-а. Други је писање једноставне Питхон скрипте за добијање ЈСОН података о профилу.

Важно је напоменути да гребање података може да крши Инстаграм-ове услове коришћења услуге и препоручујемо да преузимате податке само са свог налога.

Коришћење Инсталоадер-а

Инсталоадер је Питхон пакет за преузимање Инстаграм медија. Невероватно је једноставан за коришћење и чини вађење и преузимање података брзим и лаким. Да бисте почели да користите Инсталоадер, прво га инсталирајте користећи пип:

pip install instaloader

Једном инсталиран, можете га користити из његовог интерфејса командне линије или као пакет у Питхон скрипти.

Да бисте га користили из командне линије, користите команду инсталоадер. На пример, да бисте приказали информације помоћи, унесите следећу команду у свој терминал:

instaloader --help

Да бисте преузели слику профила корисника, унесите команду са ознаком –профиле, након чега следи корисничко име. Овако:

instaloader --profile <USERNAME OF THE PROFILE>

Али да би ова команда функционисала, морате се прво пријавити. Да бисте то урадили, проследите опцију за пријаву на следећи начин:

instaloader --login <YOUR USERNAME> --profile <USERNAME OF THE PROFILE>

Шта да преузмем

Са Инсталоадер-ом можете преузети различите медије. Овај извод странице са приручником показује вам све различите ствари које можете преузети:

  profile               Download profile. If an already-downloaded profile has been renamed, Instaloader automatically finds it by its unique
                        ID and renames the folder likewise.
  @profile              Download all followees of profile. Requires --login. Consider using :feed rather than @yourself.
  "#hashtag"            Download #hashtag.
  %location_id          Download %location_id. Requires --login.
  :feed                 Download pictures from your feed. Requires --login.
  :stories              Download the stories of your followees. Requires --login.
  :saved                Download the posts that you marked as saved. Requires --login.
  -- -shortcode         Download the post with the given shortcode
  filename.json[.xz]    Re-Download the given object.
  +args.txt             Read targets (and options) from given textfile.

Да бисте преузели постове одређеног корисника, унели бисте команду:

instaloader --login <YOUR USERNAME> <TARGET USERNAME>

У овом случају, ваше корисничко име је корисничко име вашег аутентификованог Инстаграм налога; циљно корисничко име је профил чије постове желите да преузмете.

  7 алата за трансформацију података за боље управљање подацима

Да бисте преузели постове од пратилаца профила, унели бисте команду:

instaloader --login <YOUR USERNAME> @<TARGET USERNAME>

Обратите пажњу на разлику између ове команде и претходне је @ испред циљног корисничког имена.

Алтернатива коришћењу интерфејса командне линије Инсталоадер је да га користите као Питхон пакет. Пакет је овде добро документован.

Помоћу Инсталоадер-а можете преузети различите медијске датотеке. Међутим, ако желите да издвојите метаподатке као што је биографија корисника, сам Инсталоадер не би био довољан. Са следећом методом, написаћете Питхон скрипту за издвајање података корисничког профила.

Писање Питхон скрипте за преузимање Инстаграм података

Преглед

У овој методи ћемо написати једноставну скрипту за преузимање Инстаграм података у Питхон-у. Овај метод се ослања на коришћење релативно непознатог Инстаграм ЈСОН АПИ-ја за издвајање података из јавних профила.

Начин на који овај АПИ функционише је ако додате упит __а=1&__д=1 на крај УРЛ-а вашег профила, Инстаграм ће одговорити са ЈСОН подацима о профилу.

На пример, моје корисничко име је 0канесу. Као резултат тога, ако упутим захтев на хттпс://инстаграм.цом/инстаграм/?__а=1&__д=1, добићу назад ЈСОН податке о свом профилу као одговор.

Писање скрипте

Да бисмо поднели захтев у Питхон-у, користићемо модул Питхон рекуестс. Међутим, такође можете да користите пицУРЛ, урллиб или било коју другу клијентску библиотеку коју желите да користите за прављење ХТТП захтева. За почетак, инсталирајте модул захтева користећи пип.

pip install requests

Када се то инсталира, отворите датотеку у коју ћете уписати скрипту и увезите функцију гет из модула захтева. Поред тога, такође увезите функцију учитавања из јсон-а. Ово ће се користити за рашчлањивање ЈСОН одговора.

from requests import get
from json import loads

Када увезете податке, направите променљиву која чува УРЛ на вашем Инстаграм профилу.

url="https://instagram.com/<YOUR USERNAME HERE>"

Као што је раније поменуто, да бисте издвојили Инстаграм податке из профила, потребно је да додате параметре упита __а=1 и __д=1. Да бисмо их дефинисали, креирамо објекат речника са параметрима.

params = { '__a': 1, '__d': 1 }

Да би одобрио захтеве које постављамо, Инстаграму је потребан ИД сесије. Касније ћу вам показати како да добијете ИД сесије. За сада, само ставите вредност чувара места коју ћете касније заменити.

cookies = { 'sessionid': '<YOUR SESSION ID HERE>' }

Затим дефинишите функцију која ће се покренути када захтев буде успешан.

def on_success(response):
    profile_data_json = response.text
    parsed_data = loads(profile_data_json)
    
    print('User fullname:', parsed_data['graphql']['user']['full_name'])
    print('User bio:', parsed_data['graphql']['user']['biography'])

Функција коју сам дефинисао ће узети објекат одговора, издвојити ЈСОН из тела одговора и затим анализирати ЈСОН у објекат. После овога извлачим само пуно име и биографију профила.

  Зашто апликације нестају из Апп Сторе-а и Плаи Сторе-а?

Затим дефинишите функцију која ће се покренути ако дође до грешке.

def on_error(response):
    # Printing the error if something went wrong
    print('Something went wrong')
    print('Error Code:', response.status_code)
    print('Reason:', response.reason)

Затим позивамо функцију гет да направимо захтев, прослеђујући УРЛ, параметре и колачиће као аргументе.

response = get(url, params, cookies=cookies)

Затим, на крају, проверавамо статусни код грешке. Ако је статус 200, позивамо функцију он_суццесс. Иначе само позивамо функцију он_еррор.

if response.status_code == 200:
    on_success(response)
else:
    on_error(response)

У овом тренутку смо завршили са писањем кода. Оно што је остало је да добијете сессионид. Да бисте добили ИД сесије, отворите свој Гоогле Цхроме и отворите Инстаграм на вебу. Уверите се да сте пријављени, а затим отворите Дев Тоолс користећи Цтрл + Схифт + И или Цмд +Схифт + И.

Са отвореним Дев Тоолс, отворите картицу Апликација.

Затим кликните на подмени Колачићи да бисте видели колачиће које користи Инстаграм.

Након тога, копирајте вредност колачића сессионид са листе колачића која ће бити наведена на панелу Дев Тоолс.

Када копирате ИД сесије, налепите га у скрипту и извршите скрипту. У мом случају, користећи Инстаграм као корисничко име (хттпс://инстграм.цом/инстаграм?__а=1&__д=1), ово је излаз.

И баш тако, у могућности смо да динамички преузимамо податке профила. Постоји толико више података који се враћају из ЈСОН АПИ-ја. Ово је излаз када све одштампате:

И тако извлачите податке и објаве из Инстаграм профила.

Завршне речи

У овом чланку смо прошли кроз како да преузмете постове и медије користећи Инсталоадер. Затим смо написали прилагођену скрипту за издвајање ЈСОН података профила који укључују много више од само медијског садржаја. Ако сте уживали у овом пројекту, можда бисте желели да погледате наш пост о Питхон Тимеит то Тиме Иоур Цоде.

  ЦаллВхо Видгет додаје паметно бирање брзог бирања на ваш екран [Android]

Ако сте заинтересовани да више искористите своје искуство на Инстаграму, погледајте наш пост на Кооб Сториес: детаљан преглед на Инстаграм преузимачу.