AdsPower
AdsPower

Hoe scrap je Instagram? 3 manieren om het maximale uit je scrap-inspanningen te halen

By AdsPower||15,518 Views

Neem een snelle blik

Use the simple, legal methods in this article to scrape Instagram data and boost your marketing. Stay undetected with AdsPower's antidetect features—start now!

With over 1.3 billion users, Instagram is a goldmine of valuable data for businesses to use for market research, lead generation, and performance monitoring. But scraping Instagram to get this data is the tricky part.

The procedure is not straightforward and has a lot of complexities either due to Instagram policies or technical ambiguities.

This guide answers how to scrape Instagram by introducing three ways involving low and heavy code methods and a no-code method.

Is scraping op Instagram legaal?

Het antwoord op de vraag "Is Instagram-scraping legaal?" is ja en nee tegelijk, omdat het afhangt van het type data dat je scrapt. Als je Instagram wilt scrapen voor openbaar beschikbare data, is het antwoord ja.

Maar als je Instagram scrapt voor privédata waarvoor je moet inloggen, is dat expliciet verboden en kun je te maken krijgen met schorsing van je account en in het ergste geval juridische stappen. Maar zelfs voor openbare data moet je een legale scrapmethode kiezen.

Om Instagram te scrapen voor legale data, kun je de API's van Instagram gebruiken. Deze omvatten de Instagram Graph API en de Instagram Basic Display API.

Met de Graph API kun je gegevens over zakelijke accounts en makersaccounts beheren en extraheren. De Basic Display API geeft je alleen-lezen toegang tot basisgebruikersinformatie. Beide API's voldoen aan het beleid van Instagram met betrekking tot scraping, dus het is volledig legaal om ze te gebruiken.

Als u echter niet-openbare of illegale API's gebruikt, betekent dit dat u toegang krijgt tot het platform zonder voorafgaande toestemming en vaak zonder toestemming. de scraper vermommen om zich voor te doen als een gewone gebruiker, dan valt dat onder ongeautoriseerd scrapen en schendt het de Servicevoorwaarden.

Dus voordat je begint met het scrapen van Instagram, neem even een stap terug en denk bij jezelf: "Staat Instagram scrapen toe?" en zorg ervoor dat je voorzichtig te werk gaat.

Welke Instagram-gegevens kun je gemakkelijk scrapen?

Voordat we je laten zien hoe je gegevens van Instagram kunt scrapen, moeten we eerst ontdekken welke gegevens legaal van het platform gescrapt mogen worden. Met legaal webscrapen van Instagram krijg je toegang tot deze drie categorieën gegevens:

  • Hashtags: Je kunt de best presterende of meest recente foto's en video's krijgen die zijn getagd met een specifieke hashtag in hun bijschrift.

  • Profielen: U kunt profielgegevens ophalen, zoals berichten, media-aantallen en volgers/aantal volgers.

  • Berichten: Je kunt statistieken krijgen zoals het aantal reacties, het aantal likes, de profiel-ID, de publicatiedatum en de URL.

3 manieren om Instagram te scrapen

Hier zijn drie manieren om Instagram te scrapen. Kies de manier die het beste bij je behoeften en mogelijkheden past:

Instagram scrapen met behulp van de Instagram API

Hier is een stapsgewijze handleiding over hoe je Instagram kunt scrapen, maar zorg er wel voor dat je eerst aan de volgende vereisten voldoet:

  • Een Instagram-bedrijfs-/makersaccount

  • Een Facebook-pagina die is gekoppeld aan het Instagram-bedrijfs-/makersaccount

  • Een Facebook-ontwikkelaarsaccount om de Instagram Graph API te gebruiken

  • Een geregistreerde Facebook-app met minimale instellingen

Zodra u aan deze vereisten hebt voldaan, zien de volgende stappen er als volgt uit.

Facebook-aanmeldfunctionaliteit toevoegen:

Ga naar het dashboard van uw Facebook-app en klik op de knop "Product +" in het paneel aan de linkerkant van het venster. Voeg daar het Facebook-aanmeldproduct toe. Wijzig de instellingen voor dit product voorlopig niet en laat ze op de standaardinstellingen staan.

Vervolgens moet u Facebook implementeren. Meld u aan bij uw app met behulp van Facebook-inlogdocumentatie en zorg ervoor dat uw inlogprocedureverzoeken deze twee basismachtigingen hebben:

Hoe scrap je Instagram? 3 manieren om het maximale uit je scrap-inspanningen te halen

Genereer toegangstoken:

Om acties uit te voeren vanaf het app-dashboard op het Instagram-account, is een gebruikerstoegangstoken vereist. Open aan de rechterkant van de dashboardpagina de Gebruiker of Pagina dropdown en selecteer Gebruikerstoegangstoken ophalen.

Er verschijnt een pop-upvenster met de melding dat een app (in dit geval uw app) vraagt om de bovengenoemde machtigingen. Druk eenvoudig op de knop Doorgaan of OK en u krijgt het gebruikerstoegangstoken in het veld Toegangstoken in uw dashboard.

Hoe scrap je Instagram? 3 manieren om het maximale uit je scrap-inspanningen te halen

Nu voeren we met behulp van de User Access Token een paar basisquery's uit op het Instagram-account.

1. Facebook-pagina-ID ophalen:

Eerst hebben we de ID van de Facebook-pagina nodig die is gekoppeld aan het Instagram Business-account. Voer hiervoor de volgende Get-query uit in het dashboard.

"https://graph.facebook.com/v19.0/me/accounts?access_token={access-token}"

Hiermee worden de naam en ID van de Facebook-pagina's van de Facebook-gebruiker geretourneerd. De uitvoer ziet er als volgt uit.

{
"data": [
{
"toegangstoken": "EAAJjmJ...",
"categorie":"App-pagina",
"categorielijst":[
{
"id": "2301",
"naam": "App-pagina"

],
"naam": "Metricsaurus",
"id":"134895793791914",
"taken":[
"ANALYSE",
"ADVERTEER",
"GEMIDDELD",
"CREATE_CONTENT",
"BEHEREN"
]
}
]
}


Kopieer de ID van de pagina die is gekoppeld aan het Instagram Business-account.

2. Haal het Instagram Business-account-ID op:

Typ het volgende script in de opdrachtbalk met behulp van de Facebook-ID en druk op Verzenden.

134895793791914? velden=instagram_business_account

Je krijgt de volgende uitvoer.

{
"instagram_business_account": {
"id": "17841405822304914" // Verbonden IG Gebruikers-ID
},
"id": "134895793791914" // Facebook-pagina-ID
}


3. Media-objecten van het Instagram-account ophalen:

Kopieer de Instagram-ID uit de uitvoer en voer het volgende script uit om de ID's op te halen van alle verhalen die momenteel op het Instagram Business-account zijn geplaatst.

17841405822304914/stories

De uitvoer bevat een ID voor elk verhaal.

{
"gegevens": [
{
"id": "17918195224117851"
},
{
"id": "17895695668004550"
},
{
"id": "17899305451014820"
},
{
"id": "17896450804038745"
},
{
"id": "17881042411086627"
},
{
"id": "17869102915168123"

]
}

Dit was slechts één voorbeeld. Met de Instagram Graph API kun je ook andere informatie verkrijgen, zoals de metadata van een Instagram-gebruiker, en hashtag-onderzoek uitvoeren.

Laten we nu eens kijken naar een andere manier om gegevens van Instagram te scrapen.

Instagram scrapen met een Cloud Scrapper zonder code

Voor mensen zonder programmeerachtergrond kan de bovenstaande methode lastig te begrijpen zijn, laat staan uit te voeren. Maar maak je geen zorgen. Er zijn Instagram-scrapers die de klus klaren zonder dat er code nodig is.

Hier leest u hoe u Instagram kunt scrapen met behulp van een van de tools die Apify.

Ga naar de Apify Instagram-scraperpagina:

Open de Apify Instagram-scraperpagina en klik op de Probeer gratisknop.


Hoe scrap je Instagram? 3 manieren om het maximale uit je scrap-inspanningen te halen

Meld u aan bij Apify met uw e-mailadres of Google- of Github-account. U wordt dan doorgestuurd naar de Apify Console, waar de daadwerkelijke Instagram-scraping plaatsvindt.

Verzamel doel-Instagram-URL's:

Verzamel met behulp van de Instagram-app of -website alle profiel-URL's van de Instagram-accounts die je wilt scrapen. Plak in de Apify-console al deze URL's één voor één in de gegeven invoervelden. Om ze allemaal in één keer in te voeren, kun je op de knop Bulkbewerking klikken.

Hoe scrap je Instagram? 3 manieren om het maximale uit je scrap-inspanningen te halen

Apify biedt drie scraping-opties voor de opgegeven URL's. U kunt berichten en opmerkingen scrapen of verschillende gegevens uit profielen halen.

Klik op Opslaan en Starten:

Laat de rest van de instellingen ongewijzigd en klik op Opslaan en Starten om de scraper te starten. Het resultaat is een tabel met rijen gelijk aan het aantal profiel-URL's dat u hebt opgegeven, met verschillende kolommen met profielmetadata zoals biografie, aantal volgers, aantal berichten, aantal reels, account-ID en verificatiestatus, om er maar een paar te noemen.

Hoe scrap je Instagram? 3 manieren om het maximale uit je scrap-inspanningen te halen

Resultaten opslaan:

Klik nu op de knop Resultaten exporteren en selecteer het gewenste bestandsformaat in het pop-upvenster. U kunt de gegevens ook opschonen door velden te selecteren of weg te laten die u niet nodig hebt. Daarna kunt u de resultaten downloaden, ze in een nieuw tabblad bekijken of delen via een link.

Hoe scrap je Instagram? 3 manieren om het maximale uit je scrap-inspanningen te halen

Instagram scrapen met een programmeertaal

Het bouwen van je eigen Instagram-scraper kan de meest efficiënte oplossing zijn als je vereisten niet typisch zijn en je over gedegen programmeerkennis beschikt of een ontwikkelaar in je team hebt. Je kunt dit doen met elke programmeertaal in combinatie met een webscrapingframework.

Deze handleiding laat zien hoe je Instagram kunt scrapen met Python en Selenium, een browserautomatiseringsframework.

Essentiële bibliotheken importeren:

Importeer om te beginnen basisbibliotheken, waaronder Selenium, de bijbehorende webdriver en Selenium-Stealth, om detectie te voorkomen.

van seleniumimport webdriver
van selenium.webdriver.common.byimporteren Door
van pprintimporteren pprint
importeren json
van selenium_stealthimporteren stealth

De pprint-bibliotheek helpt ons de uitvoer netjes af te drukken voor een betere leesbaarheid.

Verzamel Instagram-gebruikersnamen:

Maak een lijst en voeg de gebruikersnamen toe van de Instagram-profielen die je wilt targeten.

gebruikersnamen=["natureismetal","miteuniversity","samstailor", "therock"]
proxy = "server:poort"
output = {}

De output-variabele is een woordenboek dat we gebruiken om de resultaten op te slaan.

Definieer de hoofdfunctie:

De hoofdfunctie doorloopt de lijst met gebruikersnamen één voor één en roept de scrape-functie aan voor elke gebruikersnaam.

def main():
voor gebruikersnaamingebruikersnamen:
scrape(gebruikersnaam)


Definieer een functie om browserinstellingen te beheren:

Deze functie past de browserinstellingen aan vóór elk scrapingverzoek om anonimiteit te garanderen en detectie door Instagram te voorkomen. Deze wijzigingen omvatten het roteren van proxy's, het configureren van Selenium-Stealth-instellingen en het maken van een kunstmatige gebruikersagent.

def prepare_browser():
chrome_options=webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy}')
chrome_options.add_argument("start-gemaximaliseerd")
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
driver=webdriver.Chrome(options=chrome_options)
stealth(driver,
user_agent=user_agent='Mozilla/5.0 (Windows NT 10.0, Win64 x64) AppleWebKit/537.36 (KHTML, zoals Gecko) Chrome/83.0.4103.53 Safari/537.36',
talen= ["en-US", "en"],
vendor= "Google Inc.",
platform= "Win32",
webgl_vendor= "Intel Inc.",
renderer= "Intel Iris OpenGL Engine",
fix_hairline= False,
run_on_insecure_origins= False,
)
return driver


Definieer een functie voor scraping:

De functie scrape() die in de hoofdfunctie wordt aangeroepen, neemt één Instagram-gebruikersnaam als argument en creëert een profieleindpunt dat we gebruiken om een verzoek te versturen via de Chrome-browser via de functie prepare_browser().

We controleren ook de status van het verzoek. Als je verzoek is omgeleid naar de inlogpagina, betekent dit dat het verzoek is mislukt. Als er geen inlogtekenreeks was, was de aanvraag succesvol en wordt het resultaat geparseerd als JSON en samen met de gebruikersnaam naar de functie parse_data() verzonden.

def scrape(gebruikersnaam):


url=f'https://instagram.com/{gebruikersnaam}/? __a=1&__d=dis'
chrome = prepare_browser()
chrome.get(url)
afdrukken(f"Probeert:{chrome.current_url}")


als"inloggen"inchrome.current_url:
afdrukken ("Mislukt/herhalen om in te loggen")
chrome.quit()

else:
afdrukken ("Succes")
resp_body = chrome.find_element(By.TAG_NAME, "body").text
data_json= json.loads(resp_body)
user_data= data_json['graphql']['gebruiker']
parse_data(gebruikersnaam, gebruikersgegevens)
chrome.quit()


Definieer de parse_data()-functie:

Deze functie parseert de JSON-gegevens in het user_data-argument om het gewenste gegevensveld op te halen. In dit voorbeeld scrapen we de volledige naam van de gebruiker, de accountcategorie, het aantal volgers en de berichtbijschriften.

def parse_data(gebruikersnaam, user_data):
bijschriften = []


als len(user_data['edge_owner_to_timeline_media']['edges']) > 0:
voorknooppuntin gebruikersgegevens['edge_owner_to_timeline_media']['randen']:
als len(node['node']['edge_media_to_caption']['edges']) > 0:
Alsknooppunt['knooppunt']['edge_media_to_caption']['randen'][0]['knooppunt']['tekst']:
captions.append(

knooppunt['knooppunt']['edge_media_to_caption']['randen'][0]['knooppunt']['tekst'])

output[gebruikersnaam] = {
'naam': user_data['volledige_naam'],
'categorie': user_data['categorie_naam'],
'volgers': user_data['edge_followed_by']['aantal'],
'berichten': bijschriften,


Schrijf de drivercode:

De drivercode start het scrapingproces, extraheert de gegevens in de uitvoervariabele en roept de functie pprint() aan om de gegevens op een mooie manier weer te geven.

als __naam__ == '__main__':
main()
pprint(uitvoer)


Detectie omzeilen met AdsPower Antidetect Browser

Instagram is streng als het gaat om scrapen en geeft zeer beperkte toegang tot openbare gegevens op zijn platform. Dit omvat basisinformatie zoals profiel-ID, aantal volgers, likes en aantal reacties. Dieper graven vereist een login, wat in strijd is met het Instagram-beleid en kan leiden tot schorsing van het account.

Dit is waarAdsPower is handig omdat het u helpt een laag profiel te behouden bij het scrapen van gegevens van Instagram die mogelijk het beleid van Instagram schenden. AdsPower maakt gebruik van antidetectietechnieken zoals IP-rotatie en snelheidsbeperking om anti-scrapingmaatregelen te omzeilen.


Hoe scrap je Instagram? 3 manieren om het maximale uit je scrap-inspanningen te halen

Dus de volgende keer dat u Instagram scrapt met een codeloze tool of onofficiële Instagram-API's, zorgt u ervoor dat AdsPower antidetect-browser wordt gebruikt om detectie te omzeilen.

https://share.adspower.net/blogcta

Conclusie

Instagram staat alleen scraping toe van openbaar beschikbare data op zijn platform, waarvoor het twee API's aanbiedt. Deze API's bieden echter een zeer basaal niveau van scraping, zonder dat je daadwerkelijk relevante data van Instagram kunt scrapen.

Dit laat ons achter met webscrapers van derden of het maken van uw eigen scraper met behulp van programmeertalen. Echter, scrapen op Instagram Het gebruik van deze onofficiële methoden heeft een kans op detectie, dus zorg ervoor dat u de AdsPower antidetect-browser gebruikt voor extra bescherming.

AdsPower

Beste multi-loginbrowser voor elke branche

Hoe scrap je Instagram? 3 manieren om het maximale uit je scrap-inspanningen te halen

Mensen lezen ook