archambault-scraper v0.2.1
archambault-scraper
A scraper for http://www.archambault.ca
install
Using NPM:
npm i --save archambault-scraperusage
var archambault = require('archambault-scraper');
var query = {
query: 'Radiohead',
category: 'Music',
searchByArtist: true,
sortBy: 'Relevance',
order: 'Desc',
limit: 10,
page: 1
};
archambault.search(query, function(error, products) {
if (error) {
console.log(error);
}
if (products) {
console.log(products);
}
});documentation
ValidationError
Error instance with additional Object property errorObjects which content all the error information, see ajv error.
ListValidationError
Error instance with additional Array property validationError of ValidationError instance.
search(params, callback)
Search products on the Archambault online store. Each products are validate against the product JSON schema.
params
An Object with the following properties:
params.query
Type: String required
What you search.
params.category
Type: String required
One of the following:
Sheet MusicE-BooksMusicVideos and TV ShowsBooksInstrumentsToys & GamesGifts and Stationary
params.searchByArtist
Type: Boolean, default: false
Specify that the query is the "artist" name (musician, producer, writer, etc.).
params.sortBy
Type: String, default: Relevance
One of the following:
RelevancePopularityTitleReleasedPrice
params.order
Type: String, default: Asc
One of the following:
AscDesc
params.limit
Type: Integer
Number of products per page.
params.page
Type: Integer
Index of the page.
callback(error, products)
The products contains the valid products. If there is validation error, error will be a ListValidationError, but there might still be valid products.
function callback(error, products) {
if (error) {
console.log(error.message);
if (error instanceof ListValidationError) {
// List all the validation messages
for (var i = 0; i < error.validationErrors.length; i++) {
console.log(error.validationErrors[i].message);
}
}
}
console.log('Number valid products:', products.length);
console.log(products);
}test
Feature tests are run daily, thank to Travis CI new feature CRON Jobs. This way we know if the scraper is ever broken.
Run the test:
npm testdependecies
- yolo-scraper - A simple way to structure your web scraper.
dev dependecies
- jasmine - DOM-less simple JavaScript testing framework.
license
MIT.