当前位置: 代码迷 >> PHP >> 这个有关问题CSDN不能搞定就没人可以搞定了
  详细解决方案

这个有关问题CSDN不能搞定就没人可以搞定了

热度:159   发布时间:2012-04-02 19:58:59.0
这个问题CSDN不能搞定就没人可以搞定了
本人做了一个采集。 在本地测试,可以正常采集。

放在服务器上,也可以采集。 但是。。。。

目标站,内容更新后,,,服务器上,要过 好几个小时才能采。 (有时要隔一天)

而本地,不用等,只要目标站有数据,就可以采到。


感觉就像采数据的时候,网页没有刷新一样。  




是 服务器 问题? 还是程序不够好?(程序上,每次刷新的时候,都是重新载入页面! ,还加了 随机字符),给公司的技术也看过了,都说程序没问题


 我问了空间商,他说要我报错过去, 我怎么报? 请高手中的高手帮忙解决! 

到底是什么问题?

------解决方案--------------------
探讨

QQ288801 谢谢 帮我 看下

------解决方案--------------------
你可以把采集部分的代码贴出来。
------解决方案--------------------
服务器有缓存?
------解决方案--------------------
对方肯定是把你的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?
用代理吧
探讨
对方肯定是把你的ip列入黑名单了,你可以用adsl的连接方式,定时重连网络,这样你反复更换ip,对方服务器就应付不过来了,给你一段定时重连adsl的脚本

PHP code



$i=1;
while(true)
{
sleep(120);
if(cutNet()){
sleep(10);
if(connectNet())
……

------解决方案--------------------
探讨

我是 虚拟主机。 日本的IP... 第一次 在这个服务器上 做采集。。。他就知道?

还有就是 虚拟主机 上 要怎么代理?

------解决方案--------------------
function isConnect()
{
exec("Rasdial",$out1,$ars1);//断线
if($out1['0']=='没有连接'){
echo "没有找到连接。。。\r\n";
return false;
}
return true;
}


------解决方案--------------------
从描述来看,你的本机和你的服务器,不是在一个地区的吧?我是指省市地区。

那么也有可能是CDN导致的,不同的省市运营商,虽然访问同一个域名,但访问的主机和内容会出现不一致的情况,CDN的同步需要时间。

想解决这个问题,在你的本地搞个服务器就行了。

------解决方案--------------------
要采集国内的站点,不管从哪个角度说都适合使用国内的主机.再烂也不能烂过功夫墙外的机房了.
好歹咱们也是个局域网啊

探讨

引用:
从描述来看,你的本机和你的服务器,不是在一个地区的吧?我是指省市地区。

那么也有可能是CDN导致的,不同的省市运营商,虽然访问同一个域名,但访问的主机和内容会出现不一致的情况,CDN的同步需要时间。

想解决这个问题,在你的本地搞个服务器就行了。


也就是 换个服务器 是吗?
  相关解决方案