本人做了一个采集。 在本地测试,可以正常采集。
放在服务器上,也可以采集。 但是。。。。
目标站,内容更新后,,,服务器上,要过 好几个小时才能采。 (有时要隔一天)
而本地,不用等,只要目标站有数据,就可以采到。
感觉就像采数据的时候,网页没有刷新一样。
是 服务器 问题? 还是程序不够好?(程序上,每次刷新的时候,都是重新载入页面! ,还加了 随机字符),给公司的技术也看过了,都说程序没问题
我问了空间商,他说要我报错过去, 我怎么报? 请高手中的高手帮忙解决!
到底是什么问题?
------解决方案--------------------
------解决方案--------------------
你可以把采集部分的代码贴出来。
------解决方案--------------------
服务器有缓存?
------解决方案--------------------
对方肯定是把你的ip列入黑名单了,你可以用adsl的连接方式,定时重连网络,这样你反复更换ip,对方服务器就应付不过来了,给你一段定时重连adsl的脚本
- PHP code
$i=1; while(true) { sleep(120); if(cutNet()){ sleep(10); if(connectNet()) { echo "成功连接 " .$i." 次\r\n"; } else { echo "未连接 \r\n"; } } else { echo "未成功断开连接\r\n"; } $i++; } /** * ADSL拨号 */ function connectNet($cNum=0) { exec("rasdial.exe ADSL adsl_name adsl_pwd",$out1,$ars1); print_r($out1); if (preg_match('/已连接 ADSL/',$out1[3]) or preg_match('/已连接 ADSL/',$out1[4])) { return true; }else{ return false; } } function cutNet() { if(isConnect()){ exec("Rasdial ADSL /disconnect",$out1,$ars1);//断线 if (preg_match('/已完成/',$out1[0])) { return true; } else { return false; } } else { return true; } } function isConnect() { exec("Rasdial",$out1,$ars1);//断线 if($out1['0']=='没有连接'){ echo "没有找到连接。。。\r\n"; return false; } return true; }
------解决方案--------------------
服务器固定IP怎么用ADSL?
用代理吧
------解决方案--------------------
------解决方案--------------------
function isConnect()
{
exec("Rasdial",$out1,$ars1);//断线
if($out1['0']=='没有连接'){
echo "没有找到连接。。。\r\n";
return false;
}
return true;
}
------解决方案--------------------
从描述来看,你的本机和你的服务器,不是在一个地区的吧?我是指省市地区。
那么也有可能是CDN导致的,不同的省市运营商,虽然访问同一个域名,但访问的主机和内容会出现不一致的情况,CDN的同步需要时间。
想解决这个问题,在你的本地搞个服务器就行了。
------解决方案--------------------
要采集国内的站点,不管从哪个角度说都适合使用国内的主机.再烂也不能烂过功夫墙外的机房了.
好歹咱们也是个局域网啊