这个问题CSDN不能搞定就没人可以搞定了
本人做了一个采集。 在本地测试,可以正常采集。
放在服务器上,也可以采集。 但是。。。。
目标站,内容更新后,,,服务器上,要过 好几个小时才能采。 (有时要隔一天)
而本地,不用等,只要目标站有数据,就可以采到。
感觉就像采数据的时候,网页没有刷新一样。
是 服务器 问题? 还是程序不够好?(程序上,每次刷新的时候,都是重新载入页面! ,还加了 随机字符),给公司的技术也看过了,都说程序没问题
我问了空间商,他说要我报错过去, 我怎么报? 请高手中的高手帮忙解决!
到底是什么问题?
------解决方案--------------------
------解决方案--------------------你可以把采集部分的代码贴出来。
------解决方案--------------------服务器有缓存?
------解决方案--------------------对方肯定是把你的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的同步需要时间。
想解决这个问题,在你的本地搞个服务器就行了。
------解决方案--------------------
要采集国内的站点,不管从哪个角度说都适合使用国内的主机.再烂也不能烂过功夫墙外的机房了.
好歹咱们也是个局域网啊