epic-games-store-crawler is a crawler, which retrieves data from the Epic Games Store. It's purpose is to provide easy to access methods to crawl specific store data such as current game prices, free games, categories, etc.
npm install epic-games-store-crawler
yarn add epic-games-store-crawler
Clone the repository
git clone https://github.com/DonkeyCo/epic-games-store-crawler.git
Install dependencies
npm install
or yarn install
Run build script
npm run build
or yarn run build
Use files in dist
folder for coding
To use epic-games-store-crawler you have to import it: \
// with require
var egsCrawler = require('epic-games-store-crawler)';
var crawler = egsCrawler.Crawler;
// with import
import { Crawler } from 'epic-games-store-crawler';
Crawler.getItems({
allowedCountries: 'DE',
category: 'games/edition/base|bundle/games|editors',
count: 30,
country: 'DE',
locale: 'de'
});
{
"Catalog": {
"searchStore":{
"elements":[{
"title":"Generic Game",
"id":"3x4mpl31d",
"namespace":"example",
"description":"Generic Description",
"seller": {
"name":"Generic"
},
"price": {
"totalPrice": {
"discountPrice":0,
"originalPrice":0,
"voucherDiscount":0,
"discount":0,
"currencyCode":"EUR",
"currencyInfo": {
"decimals":2
}
}
},
"promotions": {
"promotionalOffers": [{
"promotionalOffers":[{
"startDate":"2020-08-13T15:00:00.000Z",
"endDate":"2020-08-20T15:00:00.000Z"
}]
}]
}
}]
}
}
}
Crawler.getFreeGames({
allowCountries: 'DE',
country: 'DE',
locale: 'de'
});
// Returns
{
"Catalog": {
"searchStore":{
"elements":[{
"title":"Generic Game",
"id":"3x4mpl31d",
"namespace":"example",
"description":"Generic Description",
"seller": {
"name":"Generic"
},
"price": {
"totalPrice": {
"discountPrice":0,
"originalPrice":0,
"voucherDiscount":0,
"discount":0,
"currencyCode":"EUR",
"currencyInfo": {
"decimals":2
}
}
},
"promotions": {
"promotionalOffers": [{
"promotionalOffers":[{
"startDate":"2020-08-13T15:00:00.000Z",
"endDate":"2020-08-20T15:00:00.000Z"
}]
}]
}
}]
}
}
}
Crawler.getCatalogTags({
namespace: 'epic',
locale: 'de',
start: 0,
count: 999
});
// Returns
{
"Catalog": {
"tags": {
"elements": [{
"aliases": [],
"id":"9547",
"name":"WINDOWS",
"referenceCount":259,
"status":"ACTIVE"
}]
}
}
}
Crawler.getNews('de', 30);
[{
"jcr:isCheckedOut":true,
"link":"/path/to/something",
"_title":"title",
"_noIndex":false,
"_images_":[
"https://example.com/image.png"
],"jcr:baseVersion":"abc-def-ghi",
"_urlPattern":"/path/to/something",
"lastModified":"2020-08-13T14:28:09.556Z",
"_locale":"de",
"_id":"abc-def-ghi",
"trending":false,
"image":"https://example.com/image.png",
"trendingImage":"https://example.com/image.png",
"cat":"Launcher",
"_type":"Common Post Link",
"sticky":false,
"short":"Short text. Lorem Ipsum",
"title":"Title. Lorem Ipsum",
"date":"2020-08-13T19:00:00.000Z",
"externalLink":"/path/to/something",
"slug":"this-is-a-slug",
"url":"/path/to/something",
"urlPattern":"/path/to/something"
}]
If you are interested in contributing, feel free to create a PR or an issue.