CasperJS,使用 javascript 禁用抓取目标页面中的内容
CasperJS, scrape content in the target page with javascript disable
我想从我的网站页面获取所有图像的属性 'src' 的内容。
我可以用这个简单的代码来做到这一点:
var x = require('casper').selectXPath;
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
});
casper.start('http://mylocalwebsite.com', function() {
var urls = casper.getElementsAttribute(x('//img'), 'src'); // "Google"
console.log(urls); // urls are displayed in my shell
});
casper.run();
但是,我想在使用我的脚本时禁用 javascript,我修改了我的初始代码:
var x = require('casper').selectXPath;
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
pageSettings: {
javascriptEnabled: false,
},
});
casper.start('http://mylocalwebsite.com', function() {
var urls = casper.getElementsAttribute(x('//img'), 'src'); // "Google"
console.log(urls); // this log doesn't appears from my shell
});
casper.run();
(属性 'javascriptEnabled' 设置为 false)
但是如果我这样做,我的脚本会在 getElementsAttribute 行之后停止工作。
我明白了,当我禁用 javascript 时我无法使用 casperjs 选择器。这样对吗 ?无法在我的页面中禁用 javascript 和抓取元素?
有没有办法从我禁用 javascript 的脚本中获取所有图像的 src 内容属性?
谢谢!
您可以通过取消此类请求来阻止网站的所有 js 运行:
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
});
casper.on('resource.requested', function(requestData, request){
if (/\.js/.test(requestData.url)) {
casper.log("skipped " + requestData.url);
return request.cancel();
}
});
并为 casper 启用 js。
js文件在URL中可能没有.js
后缀,如果不需要资源文件,也可以取消所有资源请求。
我想从我的网站页面获取所有图像的属性 'src' 的内容。 我可以用这个简单的代码来做到这一点:
var x = require('casper').selectXPath;
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
});
casper.start('http://mylocalwebsite.com', function() {
var urls = casper.getElementsAttribute(x('//img'), 'src'); // "Google"
console.log(urls); // urls are displayed in my shell
});
casper.run();
但是,我想在使用我的脚本时禁用 javascript,我修改了我的初始代码:
var x = require('casper').selectXPath;
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
pageSettings: {
javascriptEnabled: false,
},
});
casper.start('http://mylocalwebsite.com', function() {
var urls = casper.getElementsAttribute(x('//img'), 'src'); // "Google"
console.log(urls); // this log doesn't appears from my shell
});
casper.run();
(属性 'javascriptEnabled' 设置为 false)
但是如果我这样做,我的脚本会在 getElementsAttribute 行之后停止工作。
我明白了,当我禁用 javascript 时我无法使用 casperjs 选择器。这样对吗 ?无法在我的页面中禁用 javascript 和抓取元素?
有没有办法从我禁用 javascript 的脚本中获取所有图像的 src 内容属性?
谢谢!
您可以通过取消此类请求来阻止网站的所有 js 运行:
var casper = require('casper').create({
verbose: true,
logLevel: "debug",
});
casper.on('resource.requested', function(requestData, request){
if (/\.js/.test(requestData.url)) {
casper.log("skipped " + requestData.url);
return request.cancel();
}
});
并为 casper 启用 js。
js文件在URL中可能没有.js
后缀,如果不需要资源文件,也可以取消所有资源请求。