帝国CMS如何突破目标网站采集限制,解决获取不到列表页,具体方法找到帝国网站跟目录/e/class/connect.php文件,打开定位到ReadFiletext函数内,在获取远程代码添加如下代码(看注释说明):
function ReadFiletext($filepath){ $filepath=trim($filepath); if(strstr($filepath,"https://")){ return getHTTPS($filepath); } $htmlfp=@fopen($filepath,"r"); //远程 if(strstr($filepath,"://")) { while($data=@fread($htmlfp,500000)) { $string.=$data; } //如果为空,可能是做了防采集,待添加代码 if(empty($string)){ return getHTTP($filepath); }
最后在connect.php文件末尾添加如下函数
//突破防采集,更多突破采集限制参考php中的curl函数库 function getHTTP($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_REFERER, "http://www.baidu.com"); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $result = curl_exec($ch); curl_close($ch); return $result; }
保存即可。
|