Skip to content

Instantly share code, notes, and snippets.

@qcom
Created June 29, 2012 18:09
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save qcom/3019709 to your computer and use it in GitHub Desktop.
Save qcom/3019709 to your computer and use it in GitHub Desktop.
casperjs scraper
var skus = [113247,113248,113249];
var sku = [113247];
function Product(catalogNumber, obsolete, replacement, overview, features, specs, productNumber) {
this.catalogNumber = catalogNumber;
this.obsolete = obsolete;
this. replacement = replacement;
this.overview = overview;
this.features = features;
this.specs = specs;
this.productNumber = productNumber;
}
var casper = require('casper').create({
clientScripts: ['jQuery.js']
});
casper.start('http://bradyid.com', function() {
this.fill('form[action="/bradyid/catalog/siteSearchResultsView.do"]', { 'searchTerms': sku}, true);
});
var url = '';
casper.then(function() {
url = casper.evaluate(function($) {
return $('.imgCol a').attr('href');
});
});
casper.then(function() {
this.open(url).then(function() {
var obsolete = this.evaluate(function($) {
return Boolean(($('*:contains("Obsolete")')).length);
});
if (obsolete) { this.then(scrapeObsolete); }
else { this.then(scrape); }
});
});
function scrapeObsolete() {
console.log('Scraping Product: ' + this.getCurrentUrl());
var product = this.evaluate(function ($) {
var catalogNumber = +($('.prdctDescription td:contains("Catalog #")').next().html())
var productNumber = +($('.prdctDescription td:contains("Product #")').next().html())
var replacement = $('.tabContHolder p:contains("replacement") a').html().replace(/.$/, '');
return new Person (catalogNumber, true, replacement, null, null, null, productNumber);
});
console.log(product);
}
function scrape() {
// to be soon implemented
console.log('Scraping Product: ' + this.getCurrentUrl());
}
casper.run();
@gregorynicholas
Copy link

i'm assuming that jQuery.js sat inside of the same directory as this file?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment