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

@dillonchr/bookmancy

v2.0.5

Published

abe books book price scraper

Downloads

3

Readme

supposed to be a book on a wizard's staff

Bookmancy

Overview

Bookmancy is a small module to scrape abebooks.com search results and ebay book search results for consumption in a node environment.

Install

npm i @dillonchr/bookmancy

abe - AbeBooks search

abe({author, title, publisher, format, year, includeUrl})

  • title - String - The title of the book
  • author - String - The author or editor of the book. Basically anything that a seller would potentially put as the author.
  • publisher - String - The name of the publisher
  • format - String - options include [hardback, hardcover, softcover, paperback, h, p]
  • year - Number - Four digit year, filters books published <=year
  • includeUrl - Boolean - optional, will append a url prop to the response object for continuing the search manually

Returns

{
    results: [
        <BookResult>...
    ]
}

Example

const bookmancy = require('bookmancy');
bookmancy.abe({author: 'August Derleth', publisher: 'Mycroft'}, (err, data) => {
    console.log(err || data.results.length);
});

Returns (with includeUrl: true option)

{
    url: 'https://abebooks...',
    retults: [
        <BookResult>...
    ]
}

ebay - ebay Search

REQUIRES ebay API key

All ebay requests take place with their actual API. So you will need to register to add an application and get your keys. Once you have your key you will need to be sure to include the key in your project's .env file:

EBAY_API_KEY=xxxxxxxxxxxxxxxxxxx

Failure to include this key will result in all search calls throwing an error highlighting that this step must be completed.

ebay({author, title, publisher, year, sold, live})

  • title - String - The title of the book
  • author - String - The author or editor of the book. Basically anything that a seller would potentially put as the author.
  • publisher - String - The name of the publisher
  • year - Number - Four digit year, filters books published <=year
  • sold - Boolean - search for sold listings
  • live - Boolean - search for live listings

Note: author, title, publisher, year will be joined with spaces and searched against the API. eBay doesn't have a way to search for specific authors, titles, publishers, or publication years.

The sold and live properties are booleans. If you omit both, then the results returned will be from both sold and live listing searches. Otherwise whichever ones are true will be searched and returned.

Returns

{
    results: [
        <BookResult>...
    ]
}

Example

const bookmancy = require('bookmancy');
bookmancy.ebay({author: 'August Derleth', publisher: 'Mycroft'}, (err, data) => {
    console.log(err || data.results.length);
});

BookResult - Not available on export, but is the structure for results from both searches

  • about - String - The description from the listing
  • price - String - Unformatted price
  • shipping - String|Null - Unformatted shipping price
  • image - String|Null - URL for photo
  • year - String|Null - Year work was published in listing
  • sold - Boolean - (ebay only) if listing sold or is no longer for sale
  • url - String - URL to view item listing
  • date - Timestamp - (ebay only) when listing/auction expires