我正在尝试PhantomJS并希望用它来从网页中提取内容。但是,我不能使用以下代码注入jQuery。
console.log('SSL support = ', require('system').isSSLSupported);
var page = require('webpage').create();
console.log('page created');
page.open('https://www.google.com/#q=my+test+query', function() {
console.log('page opened');
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js", function() {
console.log('jQuery injected');
phantom.exit();
});
});
当我运行代码时,我看到一个错误
C:\Users\royshi\SkyDrive\Developer\Crawler>phantomjs test.txt
SSL support = true
page created
page opened
TypeError: 'null' is not an object (evaluating 'document.body.appendChild')
http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js:1
^C
C:\Users\royshi\SkyDrive\Developer\Crawler>
我的代码与the example provided by PhantomJS没有什么不同。想知道这里可能出现什么问题。
编辑:
我在上面的示例中使用的URL似乎有问题(即“https://www.google.com/#q=my+test+query”)。该代码适用于其他网址:https://www.google.com/:
C:\Users\royshi\SkyDrive\Developer\Crawler>phantomjs test.txt
SSL support = true
page created
page opened
jQuery injected
C:\Users\royshi\SkyDrive\Developer\Crawler>
想知道网址“https://www.google.com/#q=my+test+query”有什么问题。