windows下安装php v8js 扩展

原创 wintop  2019-08-17 01:02:24  阅读 188 次 评论 0 条
摘要:

今天采集一个网站,做了防采集,应该是有大数据,把机房的IP都加进去了,我本地采集了几天都没问题,一到机房就输出js加密的数据所以考虑用v8js 获取cookie 再进行采集。首先检查您的PHP是线程安全性的还是非安全性的,因为我们需要知道要下载正确的模块。你可以在Windows中运行一个简单的命令来检查这个。代码如下:php -i | findstr "Thread"如果结果输出是Thread Safety => enabled,

今天采集一个网站,做了防采集,应该是有大数据,把机房的IP都加进去了,我本地采集了几天都没问题,一到机房就输出js加密的数据

所以考虑用v8js 获取cookIE 再进行采集。


首先检查您的php是线程安全性的还是非安全性的,因为我们需要知道要下载正确的模块。你可以在windows中运行一个简单的命令来检查这个。代码如下:

php -i | findstr "Thread"

如果结果输出是Thread Safety => enabled,那说明你的PHP版本是线程安全性的,反之亦然。

当然你也可以新建个PHP文件,用php_info();来获取你PHP的信息。


接下来,在Jan-E这里下载完整的编译好的PHP版本:

https://www.apachelounge.com/viewtopic.php?t=6359

然后你可以从里面提取出你需要的文件,将它们解压到各自的文件夹中:

\php\ 文件夹:


v8.dll

v8_libbase.dll

v8_libplatform.dll

icui18n.dll (php7)

icuuc.dll (php7)

\php\ext\文件夹:


php_v8js.dll

还有最后一步,配置你的php.ini文件:


; V8 Javascript Engine Module
extension=php_v8js.dll

最后重启你的服务就可以了!!!


提供个简单的例子:

<?php

$v8 = new V8Js();

/* basic.js */
$JS = <<< EOT

var string1 = 'Hello' + ' ' + 'World!';
len = print(string1+"\\n");
var string2 = 'Hello' + ' ' + 'World2!';
len2 = print(string2+"\\n");
string1+","+string2;
EOT;

try {
  $temp = $v8->executeString($JS, 'basic.js');
  $temp = explode(",",$temp);
  print_r($temp);
} catch (V8JsException $e) {
  print_r($e);
}

执行结果:

[Running] php "e:worktest.php"
Hello World!
Hello World2!
Array
(
[0] => Hello World!
[1] => Hello World2!
)
[Done] exited with code=0 in 0.622 seconds

到此结束

本文地址:http://www.wintop.org/post/29.html
版权声明:本文为原创文章,版权归 wintop 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?