NodeJs 및 ZombieJS를 사용하여 가상 브라우저 환경에서 URL 요청을 가져옵니다. 내가 URL을 인출하려고 할 때 다음과 같은 오류가 표시좀비 오류 - http 요청을 가져 오는 중 오류가 발생했습니다.
var zombie = require('zombie'),
jsdom = require('jsdom'),
my_sandbox = require('sandbox'),
url = require('url'),
http = require('http'),
request = require('request'),
httpProxy = require('./lib/node-http-proxy'),
des = '',
util = require('util'),
colors = require('colors'),
is_host = true;
var s = new my_sandbox();
var browser = new zombie.Browser;
httpProxy.createServer(9000, 'localhost').listen(8000);
function zombieFetching(page) {
browser.visit(page, { debug: false },
function(err, browser, status) {
if(err) {
console.log('There is an error. Fix it');
throw(err.message);
} else {
console.log('Browser visit successful') ;
}
});
}
var server = http.createServer(function (req, res) {
var pathname = '';
if(is_host) {
dest = req.url.substr(0, req.url.length);
pathname = dest;
is_host = false;
} else {
pathname = req.url.substr(0, req.url.length);
if(pathname.charAt(0) == "/") {
console.log('new request');
console.log(pathname);
pathname = dest + pathname;
}
}
request.get({uri: pathname}, function (err, response, html) {
console.log('The pathname is:::::::::: ' + pathname);
zombieFetching(pathname);
res.end(html);
});
});
server.listen(9000);
: "www.yahoo.com"또한
home/seed/Desktop/Cloud project/node_modules/zombie/node_modules/html5/lib/html5/tokenizer.js:62
throw(e);
^
Error: undefined: Invalid character in tag name: ��
at Object.createElement (/home/seed/Desktop/Cloud project/node_modules/zombie/node_modules/jsdom/lib/jsdom/level1/core.js:1174:13)
at TreeBuilder.createElement (/home/seed/Desktop/Cloud project/node_modules/zombie/node_modules/html5/lib/html5/treebuilder.js:29:25)
at TreeBuilder.insert_element_normal (/home/seed/Desktop/Cloud project/node_modules/zombie/node_modules/html5/lib/html5/treebuilder.js:61:21)
at TreeBuilder.insert_element (/home/seed/Desktop/Cloud project/node_modules/zombie/node_modules/html5/lib/html5/treebuilder.js:52:15)
at Object.startTagOther (/home/seed/Desktop/Cloud project/node_modules/zombie/node_modules/html5/lib/html5/parser/in_body_phase.js:483:12)
at Object.processStartTag (/home/seed/Desktop/Cloud project/node_modules/zombie/node_modules/html5/lib/html5/parser/phase.js:43:44)
at EventEmitter.do_token (/home/seed/Desktop/Cloud project/node_modules/zombie/node_modules/html5/lib/html5/parser.js:94:20)
at EventEmitter.<anonymous> (/home/seed/Desktop/Cloud project/node_modules/zombie/node_modules/html5/lib/html5/parser.js:112:30)
at EventEmitter.emit (events.js:64:17)
at EventEmitter.emitToken (/home/seed/Desktop/Cloud project/node_modules/zombie/node_modules/html5/lib/html5/tokenizer.js:84:7)
, 로그 문
나는 다음과 같은 코드를 사용하고
The pathname is:::::::::: http://www.yahoo.com/
The pathname is:::::::::: http://l1.yimg.com/a/i/ww/news/2011/05/06/zuckhouse-sm.jpg
The pathname is:::::::::: http://l1.yimg.com/a/i/ww/news/2011/05/07/cable-sm.jpg
The pathname is:::::::::: http://l.yimg.com/a/a/1-/flash/promotions/yahoo/081120/70x50iltlb_2.jpg
Browser visit successful
Browser visit successful
Browser visit successful
Browser visit successful
The pathname is:::::::::: http://l.yimg.com/a/i/vm/2011may/bird74.jpg
The pathname is:::::::::: http://www.yahoo.com/jserror?ad=1&target=cms&data=FPAD
내가 알기로는 처음 네 번의 요청이 성공적으로 처리되었습니다. 좀비가 잘못된 요청을 가져 오는 이유 그러나, 나는 확실하지 않다 :
또한"http://www.yahoo.com/jserror?ad=1&target=cms&data=FPAD"
은 무엇 태그 이름에 오류가있는 잘못된 문자를 일으키는?
감사합니다, 소니
URL을 요청하면 http://unixhelp.ed.ac.uk/CGI/man-cgi?grep에 오류 로그가 표시됩니다. throw (err.message); ^ http://unixhelp.ed.ac.uk/favicon.ico에서 리소스를로드 할 수 없습니다. 404가 있습니다.이 URL은 유효하지 않으며이 요청을 가져 오는 이유가 확실하지 않습니다. 이것이 노드/좀비의 버그인지 아니면 내 코드에서 문제가 있는지 확실하지 않습니다. – sony