gpt4 book ai didi

php - 抓取网页并检索 javascript 变量

转载 作者:行者123 更新时间:2023-11-30 18:33:56 26 4
gpt4 key购买 nike

我需要抓取一个内联 javascript 代码中嵌入了 javascript 数组的网页,例如:

<script>
var videos = new Array();
videos[0] = 'http://myvideos.com/video1.mov';
videos[1] = ....
....
</script>

解决这个问题并最终得到这些视频 URL 的 PHP 数组的最简单方法是什么?

编辑:所有视频都是 .mov 扩展名。

最佳答案

这有点复杂,但它只会获取那些真正具有 videos[0] = 'http://myvideos.com/video1.mov'; 形式的链接

$tmp=str_replace(array("\r","\n"),'',$original,$matches);
$pattern='/\<script\>\s+var\ videos.*?((\s*videos\[\d+\]\ \=\ .http\:\/\/.*?\;\s*?)+)(.*?)\<\/script\>/';
$a=preg_match_all($pattern,$tmp,$matches);
unset($tmp);

if (!$a) die("no matches");

$pattern="/videos\[\d+\]\ \=\ /";
$matches=preg_split($pattern,$matches[1][0]);

$final=array();
while(sizeof($matches)>0) {
$match=trim(array_shift($matches));
if ($match=='') continue;
$final[]=substr($match,1,-2);
}
unset($matches);

print_r($final);

根据 OP 的反馈,这里是简化版本:

$original=file_get_contents($url);
$pattern='/http\:\/\/.*?\.mov/';
$a=preg_match_all($pattern,$original,$matches);
if (!$a) die("no matches");
print_r($matches[0]);

关于php - 抓取网页并检索 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8843662/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com