Skip to main content

instascrape logo

instascrape: Instagram scraping for humans

What is it?

instascrape is a powerful, lightweight library for scraping Instagram data without using their API. It is designed with flexibility and developer productivity in mind so you can stop wasting valuable time collecting data and just start analyzing!

Version Language Code style: black Release License

Downloads Activity Dependencies Issues Size

Example showing tech profile scrapes

Key features

  • :walking: Static HTML scrapers

    • Profile: scrapes 50 data points from a profile
      • follower count
      • recent posts
      • verification status
      • etc.
    • Post: scrapes almost 50 data points from a post
      • likes
      • amount of comments
      • hashtags
      • etc.
    • Hashtag: scrapes over a dozen data points from a hashtag
      • amount of posts
      • recent posts
      • featured picture URL
      • etc.
  • :floppy_disk: Download post media locally as png, jpg, mp4, and mp3

  • :musical_score: Expressive and consistent API for concise and elegant code

  • :bar_chart: Designed for seamless integration with

    and other industry standard libraries for powerful data analysis

  • :hammer: Lightweight: you don't have to build a hammer factory when all you need is a hammer

  • :spider_web: The only hard dependencies are


Table of Contents


:computer: Installation

Minimum Python version

This library currently requires Python 3.7 or higher.

pip

Install from PyPI using

$ pip3 install insta-scrape

WARNING: make sure you install insta-scrape and not a package with a similar name!


:mag_right: Sample Usage

All top-level, ready-to-use features can be imported using:

from instascrape import *

instascrape uses clean, consistent, and expressive syntax to make the developer experience as painless as possible.

# Instantiate the scraper objects 
google = Profile('https://www.instagram.com/google/')
google_post = Post('https://www.instagram.com/p/CG0UU3ylXnv/')
google_hashtag = Hashtag('https://www.instagram.com/explore/tags/google/')

# Load their respective data 
google.load()
google_post.load()
google_hashtag.load()

After being scraped, relevant attributes can be accessed with dot (.) or bracket ([]) notation

print(google.followers)
print(google_post['hashtags'])
print(google_hashtag.amount_of_posts)
>>> 12262794
>>> ['growwithgoogle']
>>> 9053408

:books: Documentation

The official documentation can be found on Read The Docs :newspaper:


:newspaper: Blog Posts

Check out blog posts on DEV for ideas and tutorials!


:pray: Contributing

All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome!

Feel free to open an Issue or look at existing Issues to get a dialogue going on what you want to see added/changed/fixed.

Beginners to open source are highly encouraged to participate and ask questions :heart:


:spider_web: Dependencies

Instascrape primarily relies on two third-party libraries for requesting and scraping Instagram HTML content:

  1. Requests: HTTP requests
  2. BeautifulSoup: Scraping and parsing HTML data.

The rest of its functionality is provided directly from Python 3's standard library for unobtrusive code under the hood with little to no overhead.


:credit_card: License

MIT


:grey_question: Support

Reach out to me if you have questions or ideas!


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

insta-scrape-1.0.0.tar.gz (14.4 kB view details)

Uploaded Source

File details

Details for the file insta-scrape-1.0.0.tar.gz.

File metadata

  • Download URL: insta-scrape-1.0.0.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.0

File hashes

Hashes for insta-scrape-1.0.0.tar.gz
Algorithm Hash digest
SHA256 681944ca076766729e014f5022b08f1dc551ccaf0b079d62ba3a6160d8d7aa80
MD5 61d9fdb058ad54363975506535e98a70
BLAKE2b-256 e684585d11bd5f7c2b30eaa4b314edbe10b60665d86e40dbd1c6085321b78cbc

See more details on using hashes here.

Release history Release notifications | RSS feed

2.1.2

2 files

2.1.1

2 files

2.1.0

2 files

2.0.2

2 files

2.0.0

1 file

1.7.1

2 files

1.7.0

1 file

1.6.1

2 files

1.6.0

1 file

1.5.0

1 file

1.4.0

2 files

1.3.4

1 file

1.3.3

1 file

1.3.2

1 file

1.3.1

1 file

1.3.0

1 file

1.2.8

1 file

1.2.7

1 file

1.2.6

1 file

1.2.5

1 file

1.2.4

1 file

1.2.3

1 file

1.2.2

1 file

1.2.1

1 file

1.2.0

1 file

1.1.0

1 file

1.0.1

1 file

This release

1.0.0 This release

1 file

0.11.0

1 file

0.10.0

1 file

0.9.0

1 file

0.8.1

1 file

0.8.0

1 file

0.7.1

1 file

0.7.0

1 file

0.6.7

1 file

0.6.6

1 file

0.6.5

1 file

0.6.4

1 file

0.6.3

1 file

0.6.2

1 file

0.6.1

1 file

0.6.0

1 file

0.5.1

1 file

0.5.0

1 file

0.4.0

1 file

0.3.0

1 file

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page