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

google-img-scrap

v1.1.4

Published

Scrap images from google images with customs pre filled google dork options

Downloads

10,496

Readme

Google-img-scrap

Scrap images from google images with customs pre filled dorking options

Update

Found a bug ?

  • Tell it in my github issues dont be afraid :)

Installation

npm i google-img-scrap

Import

const {
  GOOGLE_IMG_SCRAP,
  GOOGLE_IMG_INVERSE_ENGINE_URL,
  GOOGLE_IMG_INVERSE_ENGINE_UPLOAD,
  GOOGLE_QUERY
} = require('google-img-scrap');
// OR
import {
  GOOGLE_IMG_SCRAP,
  GOOGLE_IMG_INVERSE_ENGINE_URL,
  GOOGLE_IMG_INVERSE_ENGINE_UPLOAD,
  GOOGLE_QUERY
} from 'google-img-scrap';

Options definition

  • "search" string what you want to search
  • "proxy" AxiosProxyConfig configure a proxy with axios proxy
  • "excludeWords" string[] exclude some words from the search
  • "domains" string[] filter by domains
  • "excludeDomains" string[] exclude some domains
  • "safeSearch" boolean active safe search or not for nsfw for example
  • "custom" string add extra query
  • "urlMatch" string[][] get image when an url match a string (example: "cdn") | example below
  • "filterByTitles" string[][] filter images by titles | example below
  • "query" GoogleQuery set a query (can be [TYPE, DATE, COLOR, SIZE, LICENCE, EXTENSION]) (use GOOGLE_QUERY items | example below
  • "limit" number to limit the size of the results

Result

{
  url: 'https://images.google.com/search?tbm=isch&tbs=&q=cats',
  search: "cats",
  result: [
    {
      id: 'K6Qd9XWnQFQCoM',
      title: 'Domestic cat',
      url: 'https://i.natgeofe.com/n/548467d8-c5f1-4551-9f58-6817a8d2c45e/NationalGeographic_2572187_2x1.jpg',
      originalUrl: 'https://www.nationalgeographic.com/animals/mammals/facts/domestic-cat',
      height: 1536,
      width: 3072
    },
    {
      id: 'HkevFQZ5DYu7oM',
      title: 'Cat - Wikipedia',
      url: 'https://upload.wikimedia.org/wikipedia/commons/1/15/Cat_August_2010-4.jpg',
      originalUrl: 'https://en.wikipedia.org/wiki/Cat',
      height: 2226,
      width: 3640
    },
    ...
  ]
}

How to use ?

Simple example

Search cats images

const test = await GOOGLE_IMG_SCRAP({
  search: 'cats'
});

console.log(test);

Reverse search engine

The second parameter is like GOOGLE_IMG_SCRAP it include all type of options omitting search. (Omit<Config, "search">)

With an url (cost: 2 request)

const test = await GOOGLE_IMG_INVERSE_ENGINE_URL(
  'https://upload.wikimedia.org/wikipedia/commons/1/15/Cat_August_2010-4.jpg',
  { limit: 5 }
);

console.log(test);

With a local image (cost: 3 request)

const imageBuffer = fs.readFileSync('demonSlayer.png');
const test = await GOOGLE_IMG_INVERSE_ENGINE_UPLOAD(imageBuffer, {
  limit: 5
});

console.log(test);

Custom query

All query options are optional (see below for all the options) and need to be in uppercase. You can combine as much as you want. Find all possible query options below.

const test = await GOOGLE_IMG_SCRAP({
  search: 'cats',
  query: {
    TYPE: GOOGLE_QUERY.TYPE.CLIPART,
    LICENCE: GOOGLE_QUERY.LICENCE.COMMERCIAL_AND_OTHER,
    EXTENSION: GOOGLE_QUERY.EXTENSION.JPG
  }
});

console.log(test);

Limit result size

const test = await GOOGLE_IMG_SCRAP({
  search: 'cats',
  limit: 5
});

console.log(test);

Proxy

See axios documentation to setup the proxy

const test = await GOOGLE_IMG_SCRAP({
  search: 'cats',
  proxy: {
    protocol: 'https',
    host: 'example.com',
    port: 8080
  }
});

console.log(test);

Domains

Only scrap from a specific domain

const test = await GOOGLE_IMG_SCRAP({
  search: 'cats',
  domains: ['alamy.com', 'istockphoto.com', 'vecteezy.com']
});

console.log(test);

Exclude domains

const test = await GOOGLE_IMG_SCRAP({
  search: 'cats',
  excludeDomains: ['istockphoto.com', 'alamy.com']
});

console.log(test);

Exclude words

If you don' like black cats and white cats

const test = await GOOGLE_IMG_SCRAP({
  search: 'cats',
  excludeWords: ['black', 'white'] //If you don't like black cats and white cats
});

console.log(test);

Safe search (no nsfw)

const test = await GOOGLE_IMG_SCRAP({
  search: 'cats',
  safeSearch: false
});

console.log(test);

Custom query params

const test = await GOOGLE_IMG_SCRAP({
  search: 'cats',
  custom: 'name=content&name2=content2'
});

console.log(test);

How urlMatch and filterByTitles work ?

const test = await GOOGLE_IMG_SCRAP({
  search: 'cats',
  //will build something like this "(draw and white) or (albino and white)"
  filterByTitles: [
    ['draw', 'white'],
    ['albino', 'white']
  ],
  //will build something like this "(cdn and wikipedia) or (cdn istockphoto)"
  urlMatch: [
    ['cdn', 'wikipedia'],
    ['cdn', 'istockphoto']
  ]
});

console.log(test);

Google query

{
  SIZE: {
    LARGE,
    MEDIUM,
    ICON
  },
  COLOR: {
    BLACK_AND_WHITE,
    TRANSPARENT,
    RED,
    BLUE,
    PURPLE,
    ORANGE,
    YELLOW,
    GREEN,
    TEAL,
    PINK,
    WHITE,
    GRAY,
    BLACK,
    BROWN
  },
  TYPE: {
    CLIPART,
    DRAW,
    GIF
  },
  EXTENSION: {
    JPG,
    GIF,
    BMP,
    PNG,
    SVG,
    WEBP,
    ICO,
    RAW
  },
  DATE: {
    DAY,
    WEEK,
    MONTH,
    YEAR
  },
  LICENCE: {
    CREATIVE_COMMONS,
    COMMERCIAL_AND_OTHER
  }
}