UNPKG

opensea-scraper

Version:

Scraping floor prices from opensea.

83 lines (72 loc) 3.38 kB
const OpenseaScraper = require("./src/index.js"); // switch on/off which function to demo const demoBasicInfo = true; const demoOffers = true; const demoOffersByUrl = true; const demoRankings = true; const demoOffersByScrolling = false; // CURRENTLY NOT WORKING const demoOffersByScrollingByUrl = false; // CURRENTLY NOT WORKING // which NFT project to scrape? const slug = "cool-cats-nft"; const options = { debug: false, sort: true, logs: true, additionalWait: 0, browserInstance: undefined, }; console.log(`===>>> ${slug} <<<===`); console.log("OPTIONS:"); console.log(options); (async () => { // basic info if (demoBasicInfo) { console.log(`\n\n\n\n✅ === OpenseaScraper.basicInfo(slug) ===`); const basicInfo = await OpenseaScraper.basicInfo(slug); console.log(`basic info (taken from the opensea API):`); console.log(basicInfo); } // get offers if (demoOffers) { console.log(`\n\n\n\n✅ === OpenseaScraper.offers(slug) ===`); const result = await OpenseaScraper.offers(slug, options); console.log(`total Offers: ${result.stats.totalOffers}`); console.log(`top 3 Offers`); console.dir(result.offers.slice(0,3), {depth: null}); } // get offersByUrl if (demoOffersByUrl) { console.log(`\n\n\n\n✅ === OpenseaScraper.offersByUrl(url, resultSize) ===`); const url = "https://opensea.io/collection/boredapeyachtclub?search[sortAscending]=true&search[sortBy]=PRICE&search[stringTraits][0][name]=Background&search[stringTraits][0][values][0]=Purple&search[stringTraits][1][name]=Eyes&search[stringTraits][1][values][0]=Bloodshot&search[toggles][0]=BUY_NOW"; const resultByUrl = await OpenseaScraper.offersByUrl(url, options); console.log(`total Offers: ${resultByUrl.stats.totalOffers}`); console.log(`top 3 Offers`); console.dir(resultByUrl.offers.slice(0,3), {depth: null}); } // scrape rankings => https://opensea.io/rankings?sortBy=total_volume if (demoRankings) { console.log(`\n\n\n\n✅ === OpenseaScraper.rankings() ===`); console.log(`scraping ranking (last 24h)`); const chain = "solana"; const rankings = await OpenseaScraper.rankings("24h", chain, options); console.log(`scraped ${rankings.length} collections: ${rankings.map(o => o.slug).join(" | ")}`); } // get offersByScrolling if (demoOffersByScrolling) { console.log(`\n\n\n\n✅ === OpenseaScraper.offersByScrolling(slug, 40) ===`); const result = await OpenseaScraper.offersByScrolling(slug, 40, options); console.log(`total Offers: ${result.stats.totalOffers}`); console.log(`all scraped offers (max 40):`); console.dir(result.offers, {depth: null}); } // get offersByScrollingByUrl if (demoOffersByScrollingByUrl) { console.log(`\n\n\n\n✅ === OpenseaScraper.offersByScrollingByUrl(url, 42) ===`); const urlByScrolling = "https://opensea.io/collection/boredapeyachtclub?search[sortAscending]=true&search[sortBy]=PRICE&search[stringTraits][0][name]=Clothes&search[stringTraits][0][values][0]=Black%20Suit"; const resultByScrolling = await OpenseaScraper.offersByScrollingByUrl(urlByScrolling, 42, options); console.log(`total Offers: ${resultByScrolling.stats.totalOffers}`); console.log(`all scraped offers (max 42):`); console.dir(resultByScrolling.offers, {depth: null}); } console.log("\n🎉 DEMO ENDED 🥳") })();