Skip to main content

Untappd Scraper

Web scrape public Untappd pages into data classes.

Quickstart

User queries

from untappd_scraper.user import User

users = ["gregavola"]

for user_id in users:
    user = User(user_id)
    print(f"\n{user.name=}")

    for checkin in user.activity():
        print(f"\n\t{checkin.name=}\n\t\t{checkin}")

    print("\n\nLists:")

    for userlist in user.lists():
        print(f"\n\t{userlist.name=} {userlist.num_items=}")

    print("\n\nRecent Venues:")

    for venue in user.venue_history():
        ago = datetime.now().date() - venue.last_visit
        print(
            f"\n\t{venue.name=} {venue.last_visit.strftime('%b %d %Y')} "
            + f"({ago.days} days ago)"
        )```

    print("\n\nRecent Uniques:")

    for beer in user.beer_history():
        print(f"\t{beer}, {beer.total_checkins=}")

Venue queries

from untappd_scraper.venue import Venue

venue_ids = [
    14705,  # 4 pines
    99967,  # collaroy
]

for venue_id in venue_ids:
    venue = Venue(venue_id)
    print(f"\n{venue.name=}")

    for num, checkin in enumerate(venue.activity(), start=1):
        print(f"\n\t{num=}\t{checkin.name=}\n\t\t{checkin}")

# Load a venue by name. Try to be as unambiguous as possible
venue = Venue.from_name("hotel sweeney")
print(f"\n{venue.name=} {venue.verified=}\t{venue.categories=}\n")
print("\n".join([str(beer) for beer in venue.activity()]))

for menu in venue.menus():
    print(f"\n{menu.selection=} / {menu.name=}")

    print("\n\t\t", end="")
    print("\n\t\t".join(str(beer) for beer in menu.beers))

Notes

untappd-scraper is just that - a scraper. It doesn't store data. So, for example, if you query a user's unique beer history (with User.beer_history()) you will not be able to see the entire history. Just what is public on the web, which is the most recent 25 uniques.

Metadata

Release files for untappd-scraper 0.18.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for untappd-scraper 0.18.0
File Size Uploaded Provenance
untappd_scraper-0.18.0.tar.gz 378.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for untappd-scraper 0.18.0
File Interpreter ABI Platform
untappd_scraper-0.18.0-py3-none-any.whl Python 3 none any Details

Total release size: 415.0 kB

Release files / untappd_scraper-0.18.0.tar.gz

Download URL untappd_scraper-0.18.0.tar.gz
Size 378.9 kB
Tags Source
SHA-256 checksum
How to use checksums
533bd45e3df420882d89c22eb2254fe95e5d8075ee1ceb8394be9ffe996458eb
BLAKE2b-256 checksum
How to use checksums
daad164a7bba3fd4c7d9aa33142abbaa517e8577973267a72d76398cb003550f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / untappd_scraper-0.18.0-py3-none-any.whl

Download URL untappd_scraper-0.18.0-py3-none-any.whl
Size 36.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
57174af67c3ca2244a3c166a00fcfd969f4f8de37c4f6d8e6311640cd2a404e3
BLAKE2b-256 checksum
How to use checksums
13264b60cb32cb626f14cc0b327c699fcb5b81735834bea3ef39d664f1408dd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for untappd-scraper 0.18.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.18.0 This release

2 release files No provenance

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