关于phantomjs配合PHP爬取数据

这篇博客介绍了如何通过JavaScript和PhantomJS来测量网页的加载时间。文章提供了一段JS代码,该代码创建了一个PhantomJS页面,设置不加载图片以提高速度,并对指定URL进行加载速度测试。当加载成功后,代码会输出加载时间。同时,给出了PHP调用PhantomJS的示例,强调了命令行执行时的注意事项,包括字符编码、SSL错误忽略和加载jQuery获取数据的可能性。
摘要由CSDN通过智能技术生成

 

首先JS代码

var page = require('webpage').create(),
    system = require('system'),
    t, address;

if (system.args.length === 1) {
    console.log('Usage: loadspeed.js <some URL>');
    phantom.exit();
}

t = Date.now();
address = system.args[1];
page.settings.loadImages = false;//不加载图片,提升速度.
page.open(address, function(status) {
    if (status !== 'success') {
        console.log('FAIL to load the address');
    } else {
        setTimeout(function(){
            console.log("速度太慢,请程序员优化程序。");
            phantom.exit();
        }, 1000);
        t = Date.now() - t;
        console.log('Loading ' + system.args[1]);

        console.log('Loading time ' + t + ' msec');
    }
    phantom.exit();
});

 

PHP代码:

 

exec('E:\max\phantomjs\bin\phantomjs --output-encoding=utf8 --ignore-ssl-errors=true '.$_SERVER['DOCUMENT_ROOT'].'\skin\ickey.js https://www.baidu.com/s?wd=='.$q,$output_main);

 

注意

1.PHP执行命令别用配置好环境变量的命令,它有的时候识别不出来。

2.--output-encoding=utf8输出utf-8字符

3.--ignore-ssl-errors=true地址没有不报错。

4.可以加载jquery 拿里面的数据。

5.加头:page.settings.userAgent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36';(JS代码)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值