Instagram er en av de mest populære sosiale mediesidene med milliarder av brukere. Alle fra studenter til kjendiser har Instagram-kontoer. Offentlige data fra Instagram kan være av enorm verdi for bedrifter, markedsførere og enkeltpersoner. Alle kan bruke disse dataene til å utføre dataanalyse, målrette markedsføring og generere innsikt.

Du kan bruke Python til å bygge et automatisert verktøy som trekker ut Instagram-data.

Installere nødvendige biblioteker

Instaloader er et Python-bibliotek du kan bruke til å trekke ut offentlig tilgjengelige data fra Instagram. Du kan få tilgang til data som bilder, videoer, brukernavn, nei. av innlegg, antall følgere, antall følgere, bio, etc. ved hjelp av Instaloader. Merk at Instaloader ikke er tilknyttet, autorisert, vedlikeholdt eller godkjent av Instagram på noen måte.

For å installere instaloader via pip, kjør følgende kommando:

pip installere instaloader

Du må ha pip installert på systemet ditt for å installere eksterne Python-biblioteker.

Deretter må du installere Pandas Python-biblioteket. Pandas er et Python-bibliotek som hovedsakelig brukes til å utføre datamanipulasjon og dataanalyse. Kjør følgende kommando for å installere den:

pip installere pandaer

Nå er du klar til å begynne å sette opp koden og hente dataene fra Instagram.

Sette opp koden din

For å sette opp Instagram-verktøyet for datahenting, må du importere Instaloader Python-biblioteket og opprette en forekomst av Instaloader-klassen. Etter det må du oppgi Instagram-håndtaket til profilen du vil trekke ut dataene fra.

Instagram Extractor Python-koden er tilgjengelig i en GitHub-depot og er gratis for deg å bruke under MIT-lisensen.

import instaloader

# Opprette en forekomst av Instaloader-klassen
bot = instaloader. Instaloader()

# Laster profilen fra et Instagram-håndtak
profil = instaloader. Profile.from_username (bot.context, 'cristiano')
skrive ut(profil)

Dette er et godt første skritt for å sjekke at det grunnleggende fungerer. Du bør se noen meningsfulle data uten feil:

Trekker ut data fra profil

Du kan trekke ut verdifulle offentlig tilgjengelige data som brukernavn, no. av innlegg, antall følgere, antall følgere, bio, bruker-ID og ekstern URL ved å bruke Instaloader med bare noen få linjer med kode. Du trenger bare å oppgi Instagram-håndtaket til profilen.

import instaloader
import pandaer som pd

# Opprette en forekomst av Instaloader-klassen
bot = instaloader. Instaloader()

# Laster inn en profil fra et Instagram-håndtak
profil = instaloader. Profile.from_username (bot.context, 'leomessi')
skrive ut("Brukernavn: ", profil.brukernavn)
skrive ut("Bruker-ID: ", profile.userid)
skrive ut("Antall innlegg: ", profile.mediacount)
skrive ut("Antall følgere: ", profile.followers)
skrive ut("Følgende antall: ", profile.followees)
skrive ut("Biografi: ", profile.biography)
skrive ut("Ekstern URL: ", profile.external_url)

Du bør se mye profilinformasjon fra håndtaket du angir:

Trekker ut e-poster fra bio

Du kan trekke ut e-postadresser fra Insta-bioen til enhver profil som bruker vanlig uttrykk. Du må importere Python-ene re biblioteket og send det regulære uttrykket for å validere e-posten som en parameter til re.findall() metode:

import instaloader
import re
# Opprette en forekomst av Instaloader-klassen
bot = instaloader. Instaloader()
profil = instaloader. Profile.from_username (bot.context, "rikdom")
skrive ut("Brukernavn: ", profil.brukernavn)
skrive ut("Biografi: ", profile.biography)
e-poster = re.findall (r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b", profile.biography)
print("E-poster trukket ut fra bio:")
skrive ut(e-poster)

Skriptet vil skrive ut alt det gjenkjenner som en e-postadresse i bio:

Trekker ut data for toppsøkeresultater

Når du søker etter noe på Instagram, får du flere resultater, inkludert brukernavn og hashtags. Du kan trekke ut de beste søkeresultatene ved å bruke get_profiles() og get_hashtags() metoder. Du trenger bare å oppgi søket i instaloader. Toppsøkeresultater() metode. Videre kan du iterere og skrive ut/lagre de individuelle resultatene.

import instaloader

# Opprette en forekomst av Instaloader-klassen
bot = instaloader. Instaloader()

# Oppgi søket her
search_results = instaloader. TopSearchResults (bot.context, 'musikk')

# Iterering over de utpakkede brukernavnene
tilbrukernavniSøkeresultater.get_profiles():
skrive ut(brukernavn)

# Iterering over de utpakkede hashtaggene
tilemneknaggiSøkeresultater.get_hashtags():
skrive ut(emneknagg)

Utdataene vil inkludere alle samsvarende brukernavn og hashtags:

Trekk ut følgere og følgere av en konto

Du kan trekke ut følgerne til en konto, og de som den følger selv, ved å bruke Instaloader. Du må oppgi et Instagram-brukernavn og passord for å hente disse dataene.

Bruk aldri dine personlige kontoer til å trekke ut data fra Instagram, da det kan få kontoen din midlertidig eller permanent utestengt.

Etter å ha opprettet en forekomst av Instaloader-klassen, må du oppgi brukernavn og passord. Dette er slik at boten kan logge inn på Instagram ved hjelp av kontoen din og hente følgere og følgerdata.

Deretter må du gi Instagram-håndtaket til målprofilen. De få_følgere() og get_followees() metoder trekker ut følgere og følgere. Du kan få følgernes og følgernes brukernavn ved å bruke følger.brukernavn og followee.brukernavn henholdsvis eiendommer.

Hvis du vil lagre resultatene i en CSV-fil, må du først konvertere dataene til et Pandas DataFrame-objekt. Bruke pd. Dataramme() metode for å konvertere et listeobjekt til en DataFrame.

Til slutt kan du eksportere DataFrame-objektet til en CSV-fil ved å bruke to_csv() metode. Du må bestå filnavn.csv som en parameter til denne metoden for å få de eksporterte dataene i CSV-filformatet.

Bare kontoeierne kan se alle følgere og følgere. Du vil ikke kunne trekke ut alle følgere og følgerdata ved å bruke denne eller noen annen metode.

# Importerer biblioteker
import instaloader
import pandaer som pd

# Opprette en forekomst av Instaloader-klassen
bot = instaloader. Instaloader()
bot.login (bruker="Ditt brukernavn", passwd="Ditt passord")

# Laster inn en profil fra et Instagram-håndtak
profil = instaloader. Profile.from_username (bot.context, 'Your_target_account_insta_handle')

# Henter brukernavnene til alle følgere
følgere = [følger.brukernavn for følger i profile.get_followers()]

# Konvertering av data til en DataFrame
følgere_df = pd. DataFrame (følgere)

# Lagre resultatene i en CSV-fil
followers_df.to_csv('følgere.csv', indeks=False)

# Henter brukernavnene til alle følgere
follows = [followee.username for followee in profile.get_followees()]

# Konvertering av data til en DataFrame
follows_df = pd. DataFrame (følger)

# Lagre resultatene i en CSV-fil
follows_df.to_csv('follows.csv', indeks=False)

Last ned innlegg fra en Instagram-konto

Igjen, for å laste ned innlegg fra en hvilken som helst konto, må du oppgi et brukernavn og passord. Dette er slik at boten kan logge på Instagram med kontoen din. Du kan hente alle postenes data ved å bruke get_posts() metode. Og du kan iterere og laste ned alle de individuelle innleggene ved å bruke download_post() metode.

# Importerer biblioteker
import instaloader
import pandaer som pd

# Opprett en forekomst av Instaloader-klassen
bot = instaloader. Instaloader()
bot.login (bruker="Ditt brukernavn",passwd="Ditt passord")

# Laster inn en profil fra et Instagram-håndtak
profil = instaloader. Profile.from_username (bot.context, 'Your_target_account_insta_handle')

# Henter alle innlegg i et objekt
innlegg = profile.get_posts()

# Iterering og nedlasting av alle de individuelle innleggene
for indeks, post i enumerate (innlegg, 1):
bot.download_post (innlegg, mål=f"{profile.username}_{index}")

Skrap nettet ved hjelp av Python

Dataskraping eller nettskraping er en av de vanligste måtene å trekke ut nyttig informasjon fra nettet på. Du kan bruke dataene du trekker ut til markedsføring, innholdsskaping eller beslutningstaking.

Python er det foretrukne språket for dataskraping. Biblioteker som BeautifulSoup, Scrapy og Pandas forenkler datautvinning, analyse og visualisering.