如何使用PHP服务端代理抓取网页内容_PHP
时间:2021-07-01 10:21:17
帮助过:18人阅读
最近公司暂时断开外网,只开放公司自己所有的站点允许访问,说实在的,做WEB开发的断网,真是让人哭笑不得......
由于需要查找资料,只好简单写了一个PHP的服务端代理页面来用一下!
简单框架页面:
PHP代理页面:
以下为引用的内容:
//使用Snoopy的抓页功能 include "Snoopy.class.php"; //目标URL $url = $_REQUEST['targeturl']; //将所有传递过来的参数列出来 $par = array(); $GetPost = array_merge($_POST,$_GET); foreach($GetPost As $Key=>$Value){ if($Key!='targeturl'){ $Value = str_replace("%25","%",$Value); array_push($par,($Key . "=" . $Value)); } } //判断目标URL是否带有?(即是否带有参数) $cc = strpos($url,"?") ? "&" : "?"; //重组URL $geturl = !$par ? $url : $url.$cc.implode("&",$par); //抓取重组后的URL页面内容 $snoopy = new Snoopy; $snoopy->fetch($geturl); //替换目标内容中脚本里有可能替换父窗口地址的代码 $org = str_replace("top.location","top.title",$snoopy->results); //尝试转换目标内容编码到UTF-8 $opt = iconv("gbk","utf-8",$org); //判断目标内容编码为GBK或UTF-8 $ec = strlen($opt)?"gbk":"utf-8";
?>
//脚本放在输出内容前,避免内容中可能出现脚本错误而导致我们要做的事情被废掉 //输出抓到的目标页面内容
|
在这个小作品中,我编写了一个重要的JavaScript函数easyUTF8,它可以很方便地在JavaScript脚本中将GBK编码的内容转换为UTF-8编码。
我们还处理了一下表单中添加项目的兼容问题,注意看createIPH函数,在IE中创建的表单项内容,在指定name和value时可能会出现我们不希望的结果,这在DHTML手册中已经有过描述了。