A node package used to extract a DOM element from a remote page or a string, using selectors. Based on jsdom for fetching and parsing, and juice for inlining css.
Install
npm install dom-extractor
var extractor = require('dom-extractor');
extractor.fetch("http://github.com/", "div.header", function(data){
});
var extractor = require('dom-extractor');
extractor.fetch("<div class='a'>Hello</div><div class='b'>World</div>!", ".a", function(data){
});
Note about # selector
When you use # as a selector, the browser do not send the data since it is a keyword for anchoring things in page, browser side.
To use it anyway, use |sharp| as the selector.
Using options
You can use options as the second parameter. List of current options are:
{
selector: String,
innerText: Boolean,
inlineCss: Boolean
}
Example, using div.header selector and getting text only from result:
var extractor = require('dom-extractor');
extractor.fetch("http://github.com/", { selector: "div.header", innerText: true }, function(data){
});
Use it as a middleware (Connect)
app.use('/proxy', extractor.middleware());
Running tests
npm install
npm install -g jshint
npm test