帝国cms采集列表页提示【请确认采集页面存在,系统无法取得信息】内容页【采集页面打不开】

用帝国cms后台自带采集时,采集规则都写好了,列表页链接提示:请确认采集页面存在,系统无法取得信息,在预览内容是提示【采集页面打不开】,检查了一下规则,并没有问题。Wyf电脑_数码_手机应用问题解决的IT技术网站seo – 云狐网
 Wyf电脑_数码_手机应用问题解决的IT技术网站seo – 云狐网

经过调试之后发现 请求对方的网站返回的是false。Wyf电脑_数码_手机应用问题解决的IT技术网站seo – 云狐网

问题定位在了 /e/class/cjfun.php中 ViewGetNewsInfo函数中,$info=ReadFiletext($newspage);这个地方。猜想是对方的网站做了防采集设置。Wyf电脑_数码_手机应用问题解决的IT技术网站seo – 云狐网

解决方法Wyf电脑_数码_手机应用问题解决的IT技术网站seo – 云狐网

1.我们自定义一个请求方法,伪装ip,浏览器去访问,将函数放到/e/class/connect.php 中代码如下:Wyf电脑_数码_手机应用问题解决的IT技术网站seo – 云狐网
 Wyf电脑_数码_手机应用问题解决的IT技术网站seo – 云狐网

  1. function pretendIpData($url){ 
  2.     // 给与IP 段 
  3.     $data = array
  4.         119.120.‘.’.rand(1,255).‘.’.rand(1,255), 
  5.         124.174.‘.’.rand(1,255).‘.’.rand(1,255), 
  6.         116.249.‘.’.rand(1,255).‘.’.rand(1,255), 
  7.         118.125.‘.’.rand(1,255).‘.’.rand(1,255), 
  8.         42.175.‘.’.rand(1,255).‘.’.rand(1,255), 
  9.         124.162.‘.’.rand(1,255).‘.’.rand(1,255), 
  10.         211.167.‘.’.rand(1,255).‘.’.rand(1,255), 
  11.         58.206.‘.’.rand(1,255).‘.’.rand(1,255), 
  12.         117.24.‘.’.rand(1,255).‘.’.rand(1,255), 
  13.         203.93.‘.’.rand(1,255).‘.’.rand(1,255), 
  14.     ); 
  15.     //随机获取一个IP地址 
  16.     $ip = $data[array_rand($data)]; 
  17.     //模拟来源网址 
  18.     $referUrl = “http://www.baidu.com”
  19.     $agentArray=[ 
  20.         //PC端的UserAgent 
  21.         “safari 5.1 – MAC”=>“Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11”
  22.         “safari 5.1 – Windows”=>“Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50”
  23.         “Firefox 38esr”=>“Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0”
  24.         “IE 11”=>“Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko”
  25.         “IE 9.0”=>“Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0”
  26.         “IE 8.0”=>“Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)”
  27.         “IE 7.0”=>“Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)”
  28.         “IE 6.0”=>“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)”
  29.         “Firefox 4.0.1 – MAC”=>“Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1”
  30.         “Firefox 4.0.1 – Windows”=>“Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1”
  31.         “Opera 11.11 – MAC”=>“Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11”
  32.         “Opera 11.11 – Windows”=>“Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11”
  33.         “Chrome 17.0 – MAC”=>“Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11”
  34.         “傲游(Maxthon)”=>“Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)”
  35.         “腾讯TT”=>“Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)”
  36.         “世界之窗(The World) 2.x”=>“Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)”
  37.         “世界之窗(The World) 3.x”=>“Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)”
  38.         “360浏览器”=>“Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)”
  39.         “搜狗浏览器 1.x”=>“Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)”
  40.         “Avant”=>“Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser)”
  41.         “Green Browser”=>“Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)”
  42.     ]; 
  43.     $userAgent=$agentArray[array_rand($agentArray,1)];  //随机浏览器userAgent 
  44.     $header = array
  45.         ‘CLIENT-IP:’.$ip
  46.         ‘X-FORWARDED-FOR:’.$ip
  47.     );    //构造ip 
  48.     $curl = curl_init(); 
  49.     curl_setopt($curl, CURLOPT_URL, $url); //要抓取的网址 
  50.     curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
  51.     curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); 
  52.     curl_setopt($curl, CURLOPT_REFERER, $referUrl);  //模拟来源网址 
  53.     curl_setopt($curl, CURLOPT_USERAGENT, $userAgent); //模拟常用浏览器的userAgent 
  54.     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 
  55.     $info = curl_exec($curl); 
  56.     return $info

2.把/e/class/cjfun.php 中的ReadFiletext函数 替换成 pretendIpData (查找一下,一共有三处地方),代码如下:

  1. //$text1=ReadFiletext($dourl); 
  2.  $text1=pretendIpData($dourl);