https://github.com/sylvinus/node-crawlerからの非常に単純なサンプルコードがあります
var Crawler = require("crawler").Crawler;
var c = new Crawler({
"maxConnections":10,
"callback":function(error,result,$) {
console.log(result.body);
}
});
c.queue("http://google.com");
出力は
<Buffer 3c 21 64 6f 63 74 79 70 65 20 68 74 6d 6c 3e 3c 68 74 6d 6c 20 69 74 65
6d 73 63 6f 70 65 3d 22 69 74 65 6d 73 63 6f 70 65 22 20 69 74 65 6d 74 79 70 65
...>
Url を に変更するとc.queue("http://bing.com")
、html テキストを取得できます。この動作は Web サイトによって異なり、私には理解できません。
に変更console.log(result.body);
するとconsole.log($('body').text());
、google.com サイトから、ブラウザに送信されたものとは異なる奇妙なテキストが返されました。
Url をPinterest.comなどの他の Web サイトに変更すると、 jsdom.js自体でエラーが発生し始めました。
C:\node_modules\crawler\node_modules\crawler\node_modules\jsdom\lib\jsdom.js:256
window.document.documentElement.appendChild(script);
^
TypeError: Cannot call method 'appendChild' of null
at exports.env.exports.jsdom.env.processHTML (C:\node_modules\crawler\node_m
odules\crawler\node_modules\jsdom\lib\jsdom.js:256:41)
at Array.forEach (native)
at exports.env.exports.jsdom.env.processHTML (C:\node_modules\crawler\node_m
odules\crawler\node_modules\jsdom\lib\jsdom.js:239:18)
at Object.exports.env.exports.jsdom.env (C:\node_modules\crawler\node_module
s\crawler\node_modules\jsdom\lib\jsdom.js:268:5)
at exports.Crawler.self.onContent.jsd (C:\node_modules\crawler\node_modules\
crawler\lib\crawler.js:243:37)
at exports.Crawler.self.onContent (C:\node_modules\crawler\node_modules\craw
ler\lib\crawler.js:278:29)
at fs.readFile (fs.js:176:14)
at Object.oncomplete (fs.js:297:15)
これはコード自体のエラーだと思いますが、そうでない場合は、誰かが私の間違いを指摘するのを手伝ってくれますか?
注: jQuery ファイルの場所で動作するようにjQueryUrl
、param が追加される場合があります。new Crawler({})