Current collected state Current
Observed since 20 Oct, 21:37 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
9gag
Download 9GAG posts and comments
A Node.js package to download 9GAG posts and comments.
It can be used as a module to scrap memes or as a command line application to save data to a local folder and generate an HTML file for offline use.
Node.js 8 or above required due to Async/Await usage.
npm install 9gag
9gag <post_count> [<folder> default:output] [<section> default:hot] [<comment_count> default:0]
9gag 10
9gag 20 output trending 3
# unit
npm run test:unit
# unit + integration
npm test
const NineGag = require('9gag');
const Scraper = NineGag.Scraper;
const Downloader = NineGag.Downloader;
async function memes() {
try {
// number of posts, section and number of comments
// can pass a custom http client as the last Scraper argument
const scraper = new Scraper(10, 'hot', 3);
const posts = await scraper.scrap();
posts.forEach(p => console.log(`${p.title} -> ${p.content} -> ${p.comments.map(c => c.content)[0]}`));
await new Downloader('output').downloadPosts(posts);
}
catch (err) {
console.error(err);
}
}
memes();

Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
axiosEnvironment{
"local_name": "axios",
"alias": false,
"peer_metadata": null
} | ^0.19.2 | runtime |
fs-extraEnvironment{
"local_name": "fs-extra",
"alias": false,
"peer_metadata": null
} | ^8.1.0 | runtime |
handlebarsEnvironment{
"local_name": "handlebars",
"alias": false,
"peer_metadata": null
} | ^4.7.3 | runtime |
puppeteerEnvironment{
"local_name": "puppeteer",
"alias": false,
"peer_metadata": null
} | ^2.1.1 | runtime |
chaiEnvironment{
"local_name": "chai",
"alias": false,
"peer_metadata": null
} | ^4.2.0 | development |
eslintEnvironment{
"local_name": "eslint",
"alias": false,
"peer_metadata": null
} | ^5.7.0 | development |
mochaEnvironment{
"local_name": "mocha",
"alias": false,
"peer_metadata": null
} | ^5.2.0 | development |
Source distribution
{
"integrity": "sha512-tf6GVqWBpH7/Xec/PEQlEIWkI1Gfs44wabH20JSsMTtcyN83xp2iERxQ49r91y4OSah0LW0hrUjm560AqrYb4A==",
"shasum": "29d5fb5c53c432098a21ddb761cd19fd65f435f4",
"tarball": "https://registry.npmjs.org/9gag/-/9gag-3.2.1.tgz",
"fileCount": 23,
"unpackedSize": 1015894,
"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJef4RSCRA9TVsSAnZWagAA2X8P/1KNbXNGe0W7dN3y2RN3\nxp5a4n7AfKOgI4Ln76OeaY3Zzr8O092NHniyV2kBU5LtgKrzRdNNbM4ev/po\nWHjGBlXWFePKgEC6xwWkhhK0oT1kjMGOKSwcpvhUqU+8TNLfseuxqpkzCUDA\nB3khlWSnHYGNGn4oJNOdBClS/jlIfdAhdvYocBQ0I9hWmdtctBsjKK/GE4/M\nt/lrS1fN/qGPKy0Lvpw3V053gRs+dR0MiQTgjbTHGuzAr/RvCtHh4dRfp5Py\nQfWMKVvQqNX7Y9GNvuZH2r+t4W5uX8kRRkqyfE14G4jRMtV3PXd3c7fmTFxi\nB/0vEbO3eiv2pp7Yml3+2hyGeNEDfKgKZbX1UEbOg64Il1Wfjkn0guKVlP9J\nWO0PQwA0Ed/zEMDPk0NynmiXFEM0kvuMsK9W/khg2cHcoq+y1AYTygM0oHje\nsBtIi5i1VtPhX9awSteEt0UztX95pPCPWyWvGdOo8YhJJJgrelEE74TQg9tL\nh3Dge/1U3ZAqX+UJx1wtnxxgeX0F2cV5f1Ugra3TgSRJtWLLXXP/ivfERVGK\nLGi6cJU+A5xBsI4KvO6FDQRTbEzX4q391cHVDORSrujEiYd2LZaYJK5g5EsT\nxKkcfEYOWl6LlNFMMUa1OvAnspcbd52fbuO4M5jJ3fp8HyUh+ceC40jzlWSD\nnlwg\r\n=yjXr\r\n-----END PGP SIGNATURE-----\r\n",
"signatures": [
{
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
"sig": "MEQCIBcYfTka9AcxFAt04SP9g50pwQM5hddv+m51UAk0JVHwAiBnzIQctl0ZMWAKDkrpkWmlJSNiB/eNlVHG7V1eZYU5aA=="
}
]
}Observed since 20 Oct, 21:37 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:0a4d13849a5fd2f86c642be0502ecf5d7bc05be53de6bb7a5b3554bdcd8448d6