npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ratebeer

v1.6.0

Published

Tools for scraping ratebeer data.

Downloads

6

Readme

ratebeer

Tools for scraping ratebeer data.

usage

npm install --save ratebeer
require('ratebeer').search('7 Fjell Ulriken', function(err, result) {
  
})

methods

ratebeer.search(query, callback)

Search for a single beer. callback sends an err and result argument. If there are no matches, result will be undefined. Returns only one result: if ratebeer gave more than one result, the one with the closest levenshtein distance is returned.

Returns an object like this:

{ name: 'Nøgne Ø Imperial Stout (Whisky barrel edition)',
    url: '/beer/nogne-o-imperial-stout-whisky-barrel-edition/333945/' }

ratebeer.searchAll(query, callback)

Like ratebeer.search, but it returns all of the matching beers, rather than just one. If err is undefined, result will always be an array.

ratebeer.getBeer(query, callback)

Get all the information for a particular beer that ratebeer has available. This will search the name of the beer first, so you may be unspecific.

Note: ratebeer's page formatting is really oldschool and uses almost no CSS selectors or element IDs, so a ton of this scraping is very dependent on their layout staying exactly the same. It is not very resistant to change. It should give you a good error if things don't look right, but that's not certain. Use this function defensively.

Example result:

{ name: 'Bells Hopslam',
  ratingsCount: 2763,
  ratingsWeightedAverage: 4.2,
  ratingOverall: 100,
  ratingStyle: 100,
  brewery: 'Bells Brewery',
  style: 'Imperial IPA',
  ibu: 70,
  abv: 10,
  desc: 'Starting with six different hop varietals added to the brew kettle &  culminating with a massive dry-hop addition of Simcoe hops, Bell’s Hopslam Ale  possesses the most complex hopping schedule in the Bell’s repetoire. Selected specifically because of their aromatic qualities, these Pacific Northwest varieties contribute a pungent blend of grapefruit, stone fruit, and floral notes. A generous malt bill and a solid dollop of honey provide just enough body to keep the balance in check, resulting in a remarkably drinkable rendition of the Double India Pale Ale style.',
  image: 'http://res.cloudinary.com/ratebeer/image/upload/w_250,c_limit,q_85,d_beer_def.gif/beer_35488.jpg' }

ratebeer.getBeerByUrl(url, callback)

Fetches the same data as getBeer, but with a path relative to ratebeer.com, such as those returned by the search and searchAll functions.