Skip to content

Commit

Permalink
Fixing for new node and jsdom.
Browse files Browse the repository at this point in the history
  • Loading branch information
mikeal committed Mar 10, 2012
1 parent 7097a08 commit ce70f1f
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 36 deletions.
45 changes: 12 additions & 33 deletions main.js
Expand Up @@ -2,6 +2,7 @@ var request = require('request')
, fs = require('fs') , fs = require('fs')
, sys = require('sys') , sys = require('sys')
, path = require('path') , path = require('path')
, vm = require('vm')
, jsdom = require('jsdom') , jsdom = require('jsdom')
, util = require('util') , util = require('util')
, urlParse = require('url').parse , urlParse = require('url').parse
Expand Down Expand Up @@ -40,33 +41,6 @@ jsdom.defaultDocumentFeatures =
, MutationEvents : false , MutationEvents : false
, QuerySelector : false , QuerySelector : false
} }

var Context = process.binding('evals').Context,
Script = process.binding('evals').Script;
jqueryify = function(window, document) {
var filename = jqueryFilename
, document = window.document
;
if (window) {
var ctx = window.__scriptContext;
if (!ctx) {
window.__scriptContext = ctx = new Context();
ctx.__proto__ = window;
}
var tracelimitbak = Error.stackTraceLimit;
Error.stackTraceLimit = 100;
try {
Script.runInContext(jquery, ctx, filename);
}
catch(e) {
document.trigger(
'error', 'Running ' + filename + ' failed.',
{error: e, filename: filename}
);
}
Error.stackTraceLimit = tracelimitbak;
}
};


var debug = 1 var debug = 1
, info = 50 , info = 50
Expand Down Expand Up @@ -167,7 +141,8 @@ Spider.prototype.get = function (url, referer) {
return; return;
} }
if (resp.headers['set-cookie']) { if (resp.headers['set-cookie']) {
self.jar.setCookies(resp.headers['set-cookie']) try { self.jar.setCookies(resp.headers['set-cookie']) }
catch(e) {}
} }
self.cache.set(url, resp.headers, body); self.cache.set(url, resp.headers, body);
self._handler(url, referer, {fromCache:false, headers:resp.headers, body:body}); self._handler(url, referer, {fromCache:false, headers:resp.headers, body:body});
Expand Down Expand Up @@ -195,8 +170,12 @@ Spider.prototype._handler = function (url, referer, response) {
r.spider = this; r.spider = this;
r.response = response r.response = response
r.url = u; r.url = u;
var window = jsdom.jsdom(response.body).createWindow(); console.error('test1')
jqueryify(window);
var document = jsdom.jsdom(response.body, null, {})
var window = document.createWindow()
window.run(jquery, jqueryFilename)

window.$.fn.spider = function () { window.$.fn.spider = function () {
this.each(function () { this.each(function () {
var h = window.$(this).attr('href'); var h = window.$(this).attr('href');
Expand All @@ -206,15 +185,15 @@ Spider.prototype._handler = function (url, referer, response) {
self.get(h, url); self.get(h, url);
}) })
} }

this.currentUrl = url; this.currentUrl = url;
if (jsdom.defaultDocumentFeatures.ProcessExternalResources) { if (jsdom.defaultDocumentFeatures.ProcessExternalResources) {
$(function () { r.fn.call(r, window, window.$); }) $(function () { r.fn.call(r, window, window.$); })
} else { } else {
r.fn.call(r, window, window.$); r.fn.call(r, window, window.$);
} }
this.currentUrl = null; this.currentUrl = null;
} }
} }
Spider.prototype.log = function (level) { Spider.prototype.log = function (level) {
if (typeof level === 'string') level = logLevels[level]; if (typeof level === 'string') level = logLevels[level];
Expand Down
6 changes: 3 additions & 3 deletions package.json
@@ -1,19 +1,19 @@
{ "name" : "spider" { "name" : "spider"
, "description" : "Programmable spidering of web sites with node.js and jQuery" , "description" : "Programmable spidering of web sites with node.js and jQuery"
, "tags" : ["dom","javascript","crawling","jquery", "spider", "spidering"] , "tags" : ["dom","javascript","crawling","jquery", "spider", "spidering"]
, "version" : "0.0.2" , "version" : "0.1.0"
, "author" : "Mikeal Rogers <mikeal.rogers@gmail.com>" , "author" : "Mikeal Rogers <mikeal.rogers@gmail.com>"
, "repository" : , "repository" :
{ "type" : "git" { "type" : "git"
, "url" : "http://github.com/mikeal/spider.git" , "url" : "http://github.com/mikeal/spider.git"
} }
, "bugs" : , "bugs" :
{ "web" : "http://github.com/mikeal/spider/issues" } { "web" : "http://github.com/mikeal/spider/issues" }
, "engines" : ["node >= 0.4.4"] , "engines" : ["node >= 0.6.4"]
, "main" : "./main" , "main" : "./main"
, "dependencies": , "dependencies":
{ "request" : ">= 1.9.3" { "request" : ">= 1.9.3"
, "jsdom" : ">= 0.2.0" , "jsdom" : ">= 0.2.13"
, "routes" : ">= 0.1.0" , "routes" : ">= 0.1.0"
, "cookiejar": ">= 1.3.0" , "cookiejar": ">= 1.3.0"
} }
Expand Down

0 comments on commit ce70f1f

Please sign in to comment.