phantomjs.exe 无界面版chrome抓取网页源码提取页面链接

本文介绍如何利用PhantomJS脚本从指定URL中提取HTML、IEHTML、链接等信息,包括设置参数如JavaScript启用、加载图片和插件、资源超时、用户代理等,并演示了如何获取网页字符集、链接和外联HTML。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//phantomjs.exe phantomjs.js http://www.ydtuiguang.com/ HTML JAVASCRIPT 15000

var system = require('system');
var address = system.args[1];
var retres = 'HTML';//HTML//IEHTML//LINKS
if(system.args.length >= 2)retres = system.args[2];
var isjs = false;
if(system.args.length >= 3)if(system.args[3] == 'JAVASCRIPT')isjs = true;
var timeout = 15000;
if(system.args.length >= 4)timeout = system.args[4];

setInterval(function(){
	phantom.exit();
}, timeout * 1 + 3000);

var newper = require('webpage').create({   
    verbose: true, 
    logLevel: 'debug',
    pageSettings: {
		 javascriptEnabled: isjs,
         loadImages:  false,        
         loadPlugins: false,     
		 resourceTimeout: timeout,
         userAgent: 'Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0'
    }
});
//newper.outputEncoding="utf-8";

newper.onError = function(msg, trace){			
	//phantom.exit();
}

//newper.onResourceError = function(msg){
	//phantom.exit();
//}

newper.viewportSize = { width: 1400, height: 1050 }; 
newper.open(address, function (status) { 
	//if (status !== 'success') { 
		//
	//} else { 
		//window.setTimeout(function () { 
			var charset = newper.evaluate(function () {
				return document.characterSet;
			});
			console.log(charset);
			if(retres == 'LINKS'){
				var links = this.evaluate(function(){
					var links = document.getElementsByTagName('a');
					links = Array.prototype.map.call(links, function(link){
						return link.href;
					});
					return links;
				});				
				for(var i = 0; i < links.length; i ++)console.log(links[i]);
			}else{
				var outerhtml = newper.evaluate(function () {
					return document.all[0].outerHTML;
				});
				console.log(outerhtml);
				//console.log(newper.content);
			}			
		//}, 200); 
	//} 
	phantom.exit(); 
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值