Python Instagram API SDK
Project description
Python Instagram Scraper API SDK
Library - wrapper over instagrapi scraper API.
Used by API: https://rapidapi.com/fama-official-instagram-scraper/api/instagram-scraper-api2
This library provides basic data retrieval features with instagram: Users, Posts, Comments, etc. Read more below.
Warning:
It’s just a wrapper on the API. If the API stops working, the library stops working.
Quick Access:
Get Started
Available features:
- Get User info
- Get User medias with pagination
- Get User Followers with pagination
- Get Media Post info
- Get Media Post Comments with pagination
- Get Media Posts by Tagged user
- Get Media Posts by Hashtag
- Get Similar Users
- Search Users, Hashtags and Places
- Get Media Post Likes with pagination
Coming soon:
- Get User Following with pagination
- Get User Stories
- Get Story Info
- Get User Highlights
Installation:
Pre-requirements:
- Python >= 3.9v
With pip (https://pypi.org/project/scrapify-ig/):
pip install scrapify-ig
Usage:
- Before using the library, you need to get the RapidAPI API: https://rapidapi.com/fama-official-instagram-scraper/api/instagram-scraper-api2
Use the client object to use all possible library functions. Create client object:
from scrapify_ig import Client
TOKEN = "<RapidAPI Token>"
client = Client(token=TOKEN)
Now you are ready to use the library.
Get user information:
See examples/user_info.md for more details
user_info = client.get_user_info(username_or_id_or_url="nike", include_about=False, url_embed_safe=False)
# Returns: types.User instance
Get user media posts:
See examples/user_medias.md for more details
from scrapify_ig import types, exceptions
user_medias_chunk: types.MediaPostsChunk = client.get_user_medias_chunk(
username_or_id_or_url="nike",
url_embed_safe=False
)
# Returns: types.MediaPostsChunk.
# Posts are available in the data field: user_medias.data.
# To get the next chank, call again get_user_medias_chunk again and specify the pagination_token argument.
# pagination_token is the object field types.MediaPostsChunk.
# Example:
next_user_medias_chunk: types.MediaPostsChunk = client.get_user_medias_chunk(
username_or_id_or_url="nike",
pagination_token=user_medias_chunk.pagination_token
)
# OR:
# You can use the interface .next_chunk:
next_users_medias_chunk: types.MediaPostsChunk = user_medias_chunk.next_chunk()
# Warning:
# .next_chunk throws exceptions.NoNextPageError an error if there is no next page.
# It is recommended to use first check that there is the following page.
# Example:
if user_medias_chunk.has_next_chunk():
next_users_medias_chunk: types.MediaPostsChunk = user_medias_chunk.next_chunk()
# OR:
try:
next_users_medias_chunk: types.MediaPostsChunk = user_medias_chunk.next_chunk()
except exceptions.NoNextPageError:
# do something
pass
Get user followers:
from scrapify_ig import types
username = "nike"
user_followers_chunk: types.FollowersChunk = client.get_followers_chunk(username)
next_user_followers_chunk: types.FollowersChunk = client.get_followers_chunk(
username,
pagination_token=user_followers_chunk.pagination_token
)
# Also works .next_chunk interface:
next_user_followers_chunk: types.FollowersChunk = user_followers_chunk.next_chunk()
Get Media Post info:
See examples/media_info.md for more details
from scrapify_ig import types
media_identifier = "Cx8yen-uS-d" # media code, id or url
media_info: types.MediaPost = client.get_media_info(
code_or_id_or_url=media_identifier,
url_embed_safe=False
)
Get Media Post Comments:
from scrapify_ig import types, exceptions
media_identifier = "Cx8yen-uS-d" # media code, id or url
media_comments_chunk: types.CommentsChunk = client.get_media_comments_chunk(
code_or_id_or_url=media_identifier
)
# Also works .next_chunk interface:
if media_comments_chunk.has_next_chunk():
next_media_comments_chunk: types.CommentsChunk = media_comments_chunk.next_chunk()
# Note:
# Comments have answers to comments. There are no answers to comments.
# You need to call client.get_comment_thread_chunk to get answers to a specific comment.
# Example:
some_comment_with_child: types.CommentsChunkItem = media_comments_chunk.data.items[6]
child_comments_chunk: types.CommentsThreadChunk = some_comment_with_child.get_comment_thread_chunk(client)
# OR:
child_comments_chunk: types.CommentsThreadChunk = client.get_comment_thread_chunk(
comment_id=some_comment_with_child.id
)
# Warning:
# If there is no child comment, the HTTPNotFoundError exception will be discarded
# use the .has_thread_comments method to prevent the error:
if some_comment_with_child.has_thread_comments():
child_comments_chunk: types.CommentsThreadChunk = client.get_comment_thread_chunk(
comment_id=some_comment_with_child.id
)
# OR:
try:
child_comments_chunk: types.CommentsThreadChunk = client.get_comment_thread_chunk(
comment_id=some_comment_with_child.id
)
except exceptions.HTTPNotFoundError:
# do something
pass
Get Media Posts by Tagged user:
from scrapify_ig import types
user_identifier = "nike"
tagged_posts_chunk: types.TaggedMediaPostsChunk = client.get_tagged_medias_chunk(
username_or_id_or_url=user_identifier
)
# Also works .next_chunk interface:
if tagged_posts_chunk.has_next_chunk():
next_tagged_posts_chunk: types.TaggedMediaPostsChunk = tagged_posts_chunk.next_chunk()
# OR:
next_tagged_posts_chunk: types.TaggedMediaPostsChunk = client.get_tagged_medias_chunk(
username_or_id_or_url=user_identifier,
pagination_token=tagged_posts_chunk.pagination_token
)
Get Media Posts by Hashtag:
from scrapify_ig import types
hashtag = "nike"
hashtag_medias_chunk: types.MediaPostsHashtagChunk = client.get_medias_by_hashtag_chunk(
hashtag=hashtag
)
# Also works .next_chunk interface:
if hashtag_medias_chunk.has_next_chunk():
next_hashtag_medias_chunk: types.MediaPostsHashtagChunk = hashtag_medias_chunk.next_chunk()
# OR:
next_hashtag_medias_chunk: types.MediaPostsHashtagChunk = client.get_medias_by_hashtag_chunk(
hashtag=hashtag,
pagination_token=hashtag_medias_chunk.pagination_token
)
Get Similar Users:
from scrapify_ig import types
user_identifier = "nike"
similar_accounts: types.SimilarAccounts = client.get_similar_accounts(
username_or_id_or_url=user_identifier
)
# Note:
# pagination not allowed
Search Users, Hashtags and Places:
from scrapify_ig import types
search_query = "London"
search_result: types.SearchResult = client.search(search_query=search_query)
# Note:
# pagination not allowed
Get Media Post Likes with pagination:
from scrapify_ig import types
media_identifier = "Cx8yen-uS-d" # media code, id or url
media_likes_chunk: types.LikesMediaPostsChunk = client.get_media_likes_chunk(
code_or_id_or_url=media_identifier
)
# Also works .next_chunk interface:
if media_likes_chunk.has_next_chunk():
media_likes_chunk: types.LikesMediaPostsChunk = media_likes_chunk.next_chunk()
Types:
- user scrapify_ig.types for better typing. Also in this module you can see all available fields for each object
Errors and Issues:
If you notice an error or problem, please write about it here https://gitlab.com/oleksii.stulen.public/scrapify-ig/issues. Describe the problem as precisely as possible. What did you do, what did you want to get, how did you do it and so on. Thank you!
Author: Oleksii Stulen
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file scrapify_ig-1.7.1.tar.gz
.
File metadata
- Download URL: scrapify_ig-1.7.1.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.11.5 Linux/6.5.5-1-MANJARO
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55caf2f35d3193e422577754d27af509d2c28a20179db66d0d07c18dc13ec081 |
|
MD5 | 3731ece95a12643ea95814b2ee0f62c4 |
|
BLAKE2b-256 | 62ea83790c55549256caabdbe26f192a29d4bca4dd02a996c1bc4987eff3e08b |
File details
Details for the file scrapify_ig-1.7.1-py3-none-any.whl
.
File metadata
- Download URL: scrapify_ig-1.7.1-py3-none-any.whl
- Upload date:
- Size: 18.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.11.5 Linux/6.5.5-1-MANJARO
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb389343b34896278f1c3b4d44a404d51b43be9397be2d9d25985eb59657a053 |
|
MD5 | c9b42e624de6fa170baf93b55eebea1a |
|
BLAKE2b-256 | dd822b6d02946f7de8ae46eb39f8136e7b642fc77989474b90716c499080af07 |