2.1.0 • Published 2 months ago

open-graph-scraper-lite v2.1.0

Weekly downloads
57
License
MIT
Repository
github
Last release
2 months ago

openGraphScraperLite

Node.js CI Known Vulnerabilities

A simple javascript module for scraping Open Graph and Twitter Card info from given HTML. For Node.js usage, we recommend open-graph-scraper by the same people and can do HTTP requests.

Installation

npm install open-graph-scraper-lite --save

Usage

const ogs = require('open-graph-scraper');
const options = {
  html: `<html><head>
  <link rel="icon" type="image/png" href="https://bar.com/foo.png" />
  <meta charset="utf-8" />
  <meta property="og:description" name="og:description" content="html description example" />
  <meta property="og:image" name="og:image" content="https://www.foo.com/bar.jpg" />
  <meta property="og:title" name="og:title" content="foobar" />
  <meta property="og:type" name="og:type" content="website" />
  </head></html>`
};
ogs(options)
  .then((data) => {
    const { result } = data;
    console.log('result:', result);
  })

Results JSON

result: {
  ogDescription: 'html description example',
  ogTitle: 'foobar',
  ogType: 'website',
  ogImage: [ { url: 'https://www.foo.com/bar.jpg', type: 'jpg' } ],
  favicon: 'https://bar.com/foo.png',
  charset: 'utf-8',
  success: true
}

Options

NameInfoDefault ValueRequired
htmlYou can pass in an HTML string to run ogs on it. (use without options.url)x
onlyGetOpenGraphInfoOnly fetch open graph info and don't fall back on anything else.false
customMetaTagsHere you can define custom meta tags you want to scrape.[]

Custom Meta Tag Example

const ogs = require('open-graph-scraper');
const options = {
  html: `<html><head>
  <link rel="icon" type="image/png" href="https://bar.com/foo.png" />
  <meta charset="utf-8" />
  <meta property="og:description" name="og:description" content="html description example" />
  <meta property="og:image" name="og:image" content="https://www.foo.com/bar.jpg" />
  <meta property="og:title" name="og:title" content="foobar" />
  <meta property="og:type" name="og:type" content="website" />
  <meta name="hostname" content="github.com">
  </head></html>`,
  customMetaTags: [{
    multiple: false, // is there more than one of these tags on a page (normally this is false)
    property: 'hostname', // meta tag name/property attribute
    fieldName: 'hostnameMetaTag', // name of the result variable
  }],
};
ogs(options)
  .then((data) => {
    const { result } = data;
    console.log('hostnameMetaTag:', result.customMetaTags.hostnameMetaTag); // hostnameMetaTag: github.com
  })