Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
@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
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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.