当前位置:首页 > PHP > 正文内容

php爬虫执行js,php执行js

高老师6年前 (2020-01-07)PHP2325

当我们使用php爬虫采集网站时经常会遇到内容使用ajax异步加载。一般采取的方案是PHP模拟再请求api接口获取数据,但是有时候前端js加密非常麻烦,我们需要将js的加密方法转换为php方法方便curl请求。当然通过了解我们可以通过3种方案解决。

第一种:使用phpv8js扩展执行js代码。(pecl自行下载安装,windows安装方法http://www.yuzhiwei.com.cn/archives/238.html/comment-page-1)

<?php
//初始化
$v8 = new V8Js();

//js代码
$js = "
    var char = 'abcdef';
    var password = '123456';
    function sign(char,password)
    {
        return char+password;
    }
    var token = sign(char,password);
    token;
";

//尝试执行js
try
{
    $ret = $v8->executeString($js, 'auth.js');
    echo '执行成功:' . PHP_EOL;
    var_dump($ret);
}
catch (Exception $e)
{
    echo '代码异常' . PHP_EOL;
    var_dump($e->getMessage());
}

输出:abcdef123456

第二种:使用phantomjs加载网页,phantomjs软件内置一款webkit内核的浏览器,通过php的api调用完成真正的模拟访问,等待页面加载完成提取dom即可。(安装方法自行百度)

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/115.html

分享给朋友:

“php爬虫执行js,php执行js” 的相关文章

PHP可变变量的作用

PHP可变变量的作用

<!doctype html> <html> <head> <meta charset="utf-8"> <title>demo</title> </head> <bod...

PHP生成cookie数组,PHP删除cookie数组

PHP生成cookie数组,PHP删除cookie数组

<?php   //设置Cookies数组 setcookie('Datatype[a]', '1');  setcookie('Datatype[b]', '2');  set...

PHP session和cookie的关联

PHP session和cookie的关联

先看看下面的代码:<?php session_start(); $_SESSION['username']='lucy'; ?>当我们请求访问上面的脚本,默认会在我们的客户端生成一个名为PHPSESSID的cookie,我这里的值是PHPSESSID=...

 php header属性,php header 详解,php header的作用

php header属性,php header 详解,php header的作用

header() 函数向客户端发送原始的 HTTP 报头。(官方解释)通俗的讲header函数将参数中的字符串作为服务端的响应头来返回给客户端。什么是服务端的响应头?打开谷歌浏览器看看network中的请求response header信息即可。更多的参数百度response header即可浏览器...

php scoket,php webscoket,php webscoket 服务器

php scoket,php webscoket,php webscoket 服务器

项目需要使用websocket推送最新订单,客户服务器非linux不支持swoole,因此使用原生,直接上代码(1).PHP服务端<?php ini_set('error_reporting', E_ALL ^ E_NOTICE); ini_set...

php非对称加密

php非对称加密

先在centos安装openssl,然后开始://生成私钥openssl genrsa -out rsa_private_key.pem 1024//生成公钥openssl rsa -in rsa_private_key.pem&...