Skip to main content

Official Python client library for the Instaparser API

Project description

Instaparser Python Library

A Python client library for the Instaparser API, providing a simple and intuitive interface for parsing articles, generating summaries, and processing PDFs.

Installation

pip install instaparser

Quick Start

from instaparser import InstaparserClient

# Initialize the client with your API key
client = InstaparserClient(api_key="your-api-key")

# Parse an article from a URL
article = client.Article(url="https://example.com/article")

# Access article properties
print(article.title)
print(article.body)  # HTML or text content
print(article.author)
print(article.words)

Features

  • Article Parsing: Extract clean HTML or text from web articles
  • Summary Generation: Generate AI-powered summaries with key sentences
  • PDF Processing: Parse PDFs from URLs or file uploads
  • Error Handling: Comprehensive exception handling for API errors
  • Type Hints: Full type annotations for better IDE support

Usage

Article Parsing

Parse articles from URLs or HTML content:

from instaparser import InstaparserClient

client = InstaparserClient(api_key="your-api-key")

# Parse from URL (HTML output)
article = client.Article(url="https://example.com/article")
print(article.html)  # HTML content
print(article.body)  # Same as html when output='html'

# Parse from URL (text output)
article = client.Article(url="https://example.com/article", output="text")
print(article.text)  # Plain text content
print(article.body)  # Same as text when output='text'

# Parse from HTML content
html_content = "<html><body><h1>Title</h1><p>Content</p></body></html>"
article = client.Article(url="https://example.com/article", content=html_content)

# Disable cache
article = client.Article(url="https://example.com/article", use_cache=False)

Article Properties

The Article object provides access to all parsed metadata:

article = client.Article(url="https://example.com/article")

# Basic properties
article.url          # Canonical URL
article.title        # Article title
article.site_name    # Website name
article.author       # Author name
article.date         # Published date (UNIX timestamp)
article.description  # Article description
article.thumbnail    # Thumbnail image URL
article.words        # Word count
article.is_rtl       # Right-to-left language flag

# Content
article.body         # HTML or text (depending on output format)
article.html         # HTML content (if output='html')
article.text         # Plain text (if output='text')

# Media
article.images       # List of images
article.videos       # List of embedded videos

Summary Generation

Generate AI-powered summaries:

# Generate summary
summary = client.Summary(url="https://example.com/article")

print(summary.overview)        # Concise summary
print(summary.key_sentences)   # List of key sentences

# Stream summary with callback (for real-time updates)
def on_stream_line(line):
    print(f"Streaming: {line}")

summary = client.Summary(
    url="https://example.com/article",
    stream_callback=on_stream_line
)

PDF Processing

Parse PDFs from URLs or files. The PDF class inherits from Article, so it has all the same properties:

# Parse PDF from URL
pdf = client.PDF(url="https://example.com/document.pdf")

# Parse PDF from file
with open('document.pdf', 'rb') as f:
    pdf = client.PDF(file=f)

# Parse PDF with text output
pdf = client.PDF(url="https://example.com/document.pdf", output="text")
print(pdf.text)
print(pdf.body)  # Same as text when output='text'

# Access all Article properties
print(pdf.title)
print(pdf.words)
print(pdf.images)

Error Handling

The SDK provides specific exception types for different error scenarios:

from instaparser import (
    InstaparserClient,
    InstaparserAuthenticationError,
    InstaparserRateLimitError,
    InstaparserValidationError,
    InstaparserAPIError,
)

client = InstaparserClient(api_key="your-api-key")

try:
    article = client.Article(url="https://example.com/article")
except InstaparserAuthenticationError:
    print("Invalid API key")
except InstaparserRateLimitError:
    print("Rate limit exceeded")
except InstaparserValidationError:
    print("Invalid request parameters")
except InstaparserAPIError as e:
    print(f"API error: {e} (status: {e.status_code})")

API Reference

InstaparserClient

Main client class for interacting with the Instaparser API.

__init__(api_key: str)

Initialize the client.

  • api_key: Your Instaparser API key

Article(url: str, content: Optional[str] = None, output: str = 'html', use_cache: bool = True) -> Article

Parse an article from a URL or HTML content.

  • url: URL of the article (required)
  • content: Optional HTML content to parse instead of fetching from URL
  • output: Output format - 'html' (default) or 'text'
  • use_cache: Whether to use cache (default: True)

Returns: Article object

Summary(url: str, content: Optional[str] = None, use_cache: bool = True, stream_callback: Optional[Callable[[str], None]] = None) -> Summary

Generate a summary of an article.

  • url: URL of the article (required)
  • content: Optional HTML content to parse instead of fetching from URL
  • use_cache: Whether to use cache (default: True)
  • stream_callback: Optional callback function called for each line of streaming response. If provided, enables streaming mode.

Returns: Summary object with key_sentences and overview attributes

PDF(url: Optional[str] = None, file: Optional[Union[BinaryIO, bytes]] = None, output: str = 'html', use_cache: bool = True) -> PDF

Parse a PDF from a URL or file.

  • url: URL of the PDF (required for GET request)
  • file: PDF file to upload (required for POST request)
  • output: Output format - 'html' (default) or 'text'
  • use_cache: Whether to use cache (default: True)

Returns: PDF object (inherits from Article)

Article

Represents a parsed article from Instaparser.

Properties

  • url: Canonical URL
  • title: Article title
  • site_name: Website name
  • author: Author name
  • date: Published date (UNIX timestamp)
  • description: Article description
  • thumbnail: Thumbnail image URL
  • words: Word count
  • is_rtl: Right-to-left language flag
  • images: List of images
  • videos: List of embedded videos
  • body: Article body (HTML or text)
  • html: HTML content (if output was 'html')
  • text: Plain text content (if output was 'text')

PDF

Represents a parsed PDF from Instaparser. Inherits from Article and has all the same properties. PDFs always have is_rtl=False and videos=[].

Summary

Represents a summary result from Instaparser.

Properties

  • key_sentences: List of key sentences extracted from the article
  • overview: Concise summary of the article

License

MIT

Support

For support, email support@instaparser.com or visit https://instaparser.com.

Project details


Download files

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

Source Distribution

instaparser-1.0.0.tar.gz (55.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

instaparser-1.0.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file instaparser-1.0.0.tar.gz.

File metadata

  • Download URL: instaparser-1.0.0.tar.gz
  • Upload date:
  • Size: 55.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for instaparser-1.0.0.tar.gz
Algorithm Hash digest
SHA256 243508681edd55b90e8c4117a6da8674f982521e01d807c4deb19829d2e70da9
MD5 61564829b06d0c4095acbd70399967bb
BLAKE2b-256 bf22c994b07e77ddc09ca1c54d5fb3770dfccee825832bffc02f519e33fcce84

See more details on using hashes here.

File details

Details for the file instaparser-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: instaparser-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for instaparser-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2b0343f3e2c00a0d39334bfc93a136bdbac32dacb57e3fbfe3ffd1dd203fde12
MD5 ee18a9a547e85a6d9c8a66a4a3f7292f
BLAKE2b-256 86d2864cde76cea87d3c57adc996f6f7483eec2cd796bc264ca2c481e3b2eab4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page