首頁  >  文章  >  php教程  >  如何使用PHP服务端代理抓取网页内容

如何使用PHP服务端代理抓取网页内容

WBOY
WBOY原創
2016-06-21 08:56:531069瀏覽

最近公司暂时断开外网,只开放公司自己所有的站点允许访问,说实在的,做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手册中已经有过描述了。



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn