Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
@pct-org/pop-api-scraper
Advanced tools
The pop-api-scraper project aims to provide the core modules for the
popcorn-api
scraper, but
can also be used for other purposes by using middleware.
got
$ npm install --save pop-api-scraper pop-api
For the basic setup you need to create a Provider
(strategy) the
PopApiScraper
instance can use. The PopApiScraper
implements the strategy
pattern, where the providers are the strategies.
The example below makes a HTTP GET request to a web service or website. from there on you are free to implement how and what data you want to get from it.
// ./ExampleProvider.js
import { AbstractProvider, HttpService } from 'pop-api-scraper'
// Extend from the internal AbstractProvider.
export default class ExampleProvider extends AbstractProvider {
constructor(PopApiScraper, {name, configs, maxWebRequests = 2}) {
super(PopApiScraper, {name, configs, maxWebRequests})
}
// Override the `scrapeConfig` method to get the content from one
// configuration.
scrapeConfig(config) {
// A HTTP service to send HTTP requests.
this.httpService = new HttpService({
baseUrl: config.baseUrl
})
// HTTP GET request to: https://jsonplaceholder.typicode.com/posts?foo=bar
return this.httpService.get('/posts', config.httpOptions)
.then(res => res.data)
}
}
Bundle it all up together with
pop-api
:
// ./index.js
import os from 'os'
import { PopApi } from 'pop-api'
import { join } from 'path'
import { Cron, PopApiScraper } from 'pop-api-scraper'
import ExampleProvider from './ExampleProvider'
(async () => {
try {
// Let the PopApiScraper use the ExampleProvider o scrape data.
PopApiScraper.use(ExampleProvider, {
name: 'example-provider',
configs: [{
baseUrl: 'https://jsonplaceholder.typicode.com',
httpOptions: {
query: {
foo: 'bar'
}
}
}],
maxWebRequests: 2
})
// Register the PopApiScraper middleware to the pop-api instance.
PopApi.use(PopApiScraper, {
statusPath: join(...[os.tmpdir(), 'status.json']),
updatedPath: join(...[os.tmpdir(), 'updated.json'])
})
// Optionally you can use the Cron middleware to scrape for content on a
// regulat basis.
PopApi.use(Cron, {
cronTime: '0 0 */6 * * *',
start: false
})
// PopApi now has a `scraper` instance.
const res = await PopApi.scraper.scrape()
console.info(res[0])
} catch (err) {
console.error(err)
}
})()
MIT License
FAQs
The base modules for the popcorn-api scraper
The npm package @pct-org/pop-api-scraper receives a total of 8 weekly downloads. As such, @pct-org/pop-api-scraper popularity was classified as not popular.
We found that @pct-org/pop-api-scraper demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.