Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

instagram-tagscrap-filecache

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

instagram-tagscrap-filecache

NPM module for loading images from Instagram by hashtag without API access by means of scraping.

latest
Source
npmnpm
Version
1.0.13
Version published
Maintainers
1
Created
Source

instagram-tagscrap-filecache

NodeJS module for loading posts from Instagram by hashtag, individual post pages and locationpages without API access by means of scraping.

Disclamer

Instagram has gone to great lengths to prevent scraping and other unauthorized access to their public content. This module is dependant on the markup the public-facing instagram.com. Should that change this module might also stop working as intended. It also only loads the 17 posts that are displayed on first-load without following pagination to load more images. You should take this into consideration when deciding whether this module will work for you.

Installation

npm install instagram-tagscrap-filecache

Usage

The most basic usage will allow you to load the first 17 posts for any given hashtag with basic info and URLs to the full post media.

Tage page scraping

var Instagram = require('instagram-tagscrap-filecache');
var ig = new Instagram({
   cache : {
       prefix : 'ig-',
       isIgnore : false,
       ttl : 60 * 30, // 30 min
       tmpDir : null
   }
});

ig.scrapeTagPage('bernie').then(function(result){
    console.dir(result);
})

Example response:

{
    "total": 5854,
    "count": 17,
    "media": [{
        "code": "BMm39DKD6DB",
        "date": 1478733183,
        "dimensions": {
            "width": 750,
            "height": 750
        },
        "comments_disabled": false,
        "comments": {
            "count": 0
        },
        "caption": "Lorem ipsum... #quote #margaretmead #restmycase",
        "likes": {
            "count": 52
        },
        "owner": {
            "id": "393767493"
        },
        "thumbnail_src": "https://instagram.fosl1-1.fna.fbcdn.net/t51.2885-15/s640x640/sh0.08/e35/14719160_341462716214777_3017677686123266048_n.jpg?ig_cache_key=MTM4MDAzNjQyMzY3MTg0OTE1Mw%3D%3D.2",
        "is_video": false,
        "id": "1380036423671849153",
        "display_src": "https://instagram.fosl1-1.fna.fbcdn.net/t51.2885-15/s750x750/sh0.08/e35/14719160_341462716214777_3017677686123266048_n.jpg?ig_cache_key=MTM4MDAzNjQyMzY3MTg0OTE1Mw%3D%3D.2"
    }
    ....
}

As you can see, only the basic info required for listing images is returned. If you need further info, like more info about the owner of the post or the location, you can perform these queries separately or all in one go with the included deepScrapeTagPage method which populates the original tag page response with the corresponding data from the postPage and locationPage methods.

Deep tag page scraping

var Instagram = require('instagram-tagscrap-filecache');
var ig = new Instagram();

ig.deepScrapeTagPage('bernie').then(function(result){
    console.dir(result);
})

The response from this call is so vast that to see what it contains I recommend you perform it and log out the result.

Post page scraping

The post page scraping method takes a code argument (like the one returned for each post via the scrapeTagPage).

var Instagram = require('instagram-tagscrap-filecache');
var ig = new Instagram();

ig.scrapePostPage('BMm39DKD6DB').then(function(result){
    console.dir(result);
})

Location page scraping

The location page scraping method takes a numeric id argument (like the one returned for each post via the scrapeTagPage) and returns lat/lng coordinates for the post location among many other things.

var Instagram = require('instagram-tagscrap-filecache');
var ig = new Instagram();

ig.scrapeLocationPage(542401).then(function(result){
    console.dir(result);
})

Keywords

instagram

FAQs

Package last updated on 27 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts