@tacohitbox/bing-scraper
Version:
Scrape results from Microsoft Bing.
78 lines (60 loc) • 1.92 kB
Markdown
Scrape results from Microsoft Bing.
Partially based on [@n0rmancodes/bing-scraper](https://github.com/normanlol/bing-scraper).
```npm i @tacohitbox/bing-scraper```
```js
// 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);
}
});
```
``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)
```js
{
"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`` **must** be a function with an error and response variable, like this:
```js
bing.search("test", function(err, res) {
// Function here.
})
```
This is nearly identical to how ``query`` and ``callback`` are set.
The exception for this is ``enforceLanguage`` in ``query`` does nothing.