@tacohitbox/bing-scraper

Scrape results from Microsoft Bing.

Usage no npm install needed!

<script type="module">
  import tacohitboxBingScraper from 'https://cdn.skypack.dev/@tacohitbox/bing-scraper';
</script>

README

bing-scraper

Scrape results from Microsoft Bing.

Partially based on @n0rmancodes/bing-scraper.

install

npm i @tacohitbox/bing-scraper

sample code

// Logs results or error.

var bing = require('@tacohitbox/bing-scraper');
bing.search({
  q: 'test',
  pageCount: 2
}, function(err, resp) {
  if (err) {
    console.log(err);
  } else {
    console.log(resp);
  }
});

usage

bing.search(query, cb)

query setting

query can be either a string or object.

You can set userAgent, referer, cookies (must be from a response), lang to request Bing with as well.

You can also set how many pages to grab with pageCount,as well as forcing a language to search (set by lang, by default "en-US") by setting enforceLanguage to true.

example (with object)
{
  "q": "test",
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0",
  "lang": "en-US",
  "referer": "https://www.bing.com/",
  "enforceLanguage": false
  "pageCount": 1,
  "cookies": [
    {
      name: 'MUID',
      value: '1127A942078D62811E16B9C0065963C3',
      domain: '.bing.com',
      expires: 2022-08-22T08:03:58.000Z,
      path: '/',
      secure: true,
      sameSite: 'None'
    }
  ]
}

Cookies are generated by the set-cookie-parser package to keep track of cookies given off by Bing.

You can skip using an object by simply typing the query as a string like bing.search("test").

cb setting

cb must be a function with an error and response variable, like this:

bing.search("test", function(err, res) {
  // Function here.
})

bing.searchImages(query, callback)

This is nearly identical to how query and callback are set.

The exception for this is enforceLanguage in query does nothing.