9gscraper 中文文档教程
9gscraper
用于抓取 9gag 帖子和评论的 nodejs 包。
Documentation
getFeed([options])
options
{Object} 一个包含:section、batchSize 和 limit 的对象。section {String} 栏目类型,默认:
trending
。batchSize {Number} 表示刮板一次应该在缓冲区中有多少帖子,默认值:10。
limit {Number} 结果总数,默认值:-1。
返回 post 对象的异步迭代器。
post
对象示例:
{
"id": "aQ1edyK",
"url": "https://9gag.com/gag/aQ1edyK",
"title": "Keep the culture alive",
"content": {
"type": "video",
"src": [
{
"src": "https://img-9gag-fun.9cache.com/photo/aQ1edyK_460svvp9.webm",
"format": "video/webm"
},
{
"src": "https://img-9gag-fun.9cache.com/photo/aQ1edyK_460sv.mp4",
"format": "video/mp4"
},
{
"src": "https://img-9gag-fun.9cache.com/photo/aQ1edyK_460svwm.webm",
"format": "video/webm"
}
]
},
"category": "GIF",
"comments": "Object [AsyncGenerator]"
}
Examples
使用 Promises 和 forEach 获取前 1k 个帖子
const scraper = require("9gscraper");
scraper.getFeed({ limit: 1000 }).then(async feed => {
await feed.forEach(post=>console.log(post.title));
});
使用 Async/Await 和 for 循环从“hot”部分的前 5 个帖子中获取评论
const scraper = require("9gscraper")
(async () => {
const feed = await scraper.getFeed({ section: "hot", limit: 5 });
for await (const post of feed) {
for await (const comment of post.comments) {
console.log(`${comment.user.displayName}: ${comment.text}`);
}
}
})();
9gscraper
A nodejs package to scrape 9gag posts and comments.
Documentation
getFeed([options])
options
{Object} an object containing: section, batchSize and limit.section {String} sections type, default:
trending
.batchSize {Number} indicates how many posts should the scraper have in the buffer at one time, default: 10.
limit {Number} total count of results, default: -1.
returns asynchronous iterator of post objects.
post
object example:
{
"id": "aQ1edyK",
"url": "https://9gag.com/gag/aQ1edyK",
"title": "Keep the culture alive",
"content": {
"type": "video",
"src": [
{
"src": "https://img-9gag-fun.9cache.com/photo/aQ1edyK_460svvp9.webm",
"format": "video/webm"
},
{
"src": "https://img-9gag-fun.9cache.com/photo/aQ1edyK_460sv.mp4",
"format": "video/mp4"
},
{
"src": "https://img-9gag-fun.9cache.com/photo/aQ1edyK_460svwm.webm",
"format": "video/webm"
}
]
},
"category": "GIF",
"comments": "Object [AsyncGenerator]"
}
Examples
Get first 1k posts using Promises and forEach
const scraper = require("9gscraper");
scraper.getFeed({ limit: 1000 }).then(async feed => {
await feed.forEach(post=>console.log(post.title));
});
Get comments from the first 5 posts in section "hot" using Async/Await and for loop
const scraper = require("9gscraper")
(async () => {
const feed = await scraper.getFeed({ section: "hot", limit: 5 });
for await (const post of feed) {
for await (const comment of post.comments) {
console.log(`${comment.user.displayName}: ${comment.text}`);
}
}
})();